показывать число индекса вектора

Я хочу показать число индекса, в котором этот верный posicionada информация в векторе. Я сделал for, чтобы вычислять, который является человеком, у которого есть самое меньшее количество детей, и все те. Как только я получаю самое меньшее количество детей, я хочу сказать, кто тот, который у него есть меньше. Поэтому я хочу показать стоимость p.

for(int p=1;p<=5;p++){
       if (vector_numeroDeHijos[p]<menorTotal) {
           menorTotal=vector_numeroDeHijos[p];
        }
}

А именно, если я помещаю ему в p стоимость, я получаю то, что находится в этом положении вектора. То, что я хочу здесь, состоит в том, чтобы получать стоимость p (не то, что находится там). Как я могу делать?

0
задан 18.08.2016, 04:56
3 ответа

он создает переменную, которая копировала бы стоимость p, когда будет выполнен случай if

int pos;//icionador
for(int p=1;p<=5;p++){
       if (vector_numeroDeHijos[p]<menorTotal) {
           menorTotal=vector_numeroDeHijos[p];
           pos = p;
        }

, хотя ты я это, должно быть, спрашиваю. Вїpor, что p равен 1 и не 0?

0
ответ дан 24.11.2019, 13:37

Обычная форма обычно получая iterador в желанную составную часть и потом вычисляет дистанцию между началом серии и этого iterador: Вышедшие

#include <iostream>
#include <algorithm>
#include <vector>

int main()
{
    std::vector<int> v{9, 4, 7, 2, 8, 3, 5}; // vector de enteros
    for(auto& i : v)
        std::cout << i << ' ';
    std::cout << '\n';

    auto i_min = std::min_element(std::begin(v), std::end(v));
    auto pos = std::distance(std::begin(v), i_min);
    std::cout << "el menor es: " << *i_min
              << "\nde indice == " << pos << '\n';
}

:

9 4 7 2 8 3 5
el menor es: 2
de indice == 3
2
ответ дан 24.11.2019, 13:37
  • 1
    Я попытался, с которым dijsite. я использую devc ++ 5.11 и c и # 243; я говорю, что он не составляет этот. Тебе какой-то другой способ приходит в голову? Я искал и не encontr и # 233; soluci и # 243; n –  happyperson 18.08.2016, 05:35
  • 2
    @happyperson S и # 237; ac и # 225; есть список бесплатных настоящих составителей: isocpp.org/get-started –   18.08.2016, 09:29
  • 3
    @happyperson, если ты не показываешь нас qu и # 233; ошибка compilaci и # 243; n ты находишься, dif и # 237; cilmente мы можем помогать тебе решать это. Мое пари состоит в том, что твой составитель не C ++ 11 или верхний эксперт и # 237; что ты быть и # 225; не удаваясь в них l и # 237; neas, что использует auto. –  PaperBirdMaster 18.08.2016, 09:38
  • 4
    @asdasdasd я понимаю твое использование std::begin и std::end, это м и # 225; s ген и # 233; богатый..., но в этом контексте, в котором s и # 243; используется std::vector я лично использовать и # 237; в std::vector::begin и std::vector::end если только happyperson est и # 233; используя array est и # 225; костариканский, в этом случае у нас нет м и # 225; s средство защиты, которое использовать begin и end ты освобождал бы. –  PaperBirdMaster 18.08.2016, 09:41
  • 5
    @PaperBirdMaster S и # 237; я обычно предпочитаю функции espec и # 237; ficas контейнера, но как не s и # 233; значение " vector" в вопросе, из-за сомнений используйте и #233; stas (что функционально эквивалентные). –   18.08.2016, 15:24

Ввиду того, что вопрос был отмечен и , и будучи ответом asdasdasd он санкционирует, но сфокусированная так sГіlo в языке , aГ±ado ответ в языке :


Показывать самую меньшую составную часть договоренности требует, договоренность пробегается в законченного и сравнивать стоимость каждого положения с положением, стоимость которого была несовершеннолетним до сих пор:

int main()
{
    int v[] = {9, 4, 7, 2, 8, 3, 5}; // vector de enteros
    unsigned menor = 0;

    for (unsigned indice = 1; indice < sizeof(v) / sizeof(*v); ++indice)
        menor = v[menor] < v[indice] ? menor : indice;

    printf("indice del menor elemento: %d", menor);
    return 0;
}

В примере я наставил указателя menor, чтобы указывать на первую posiciГіn договоренности v и начал в indizar договоренность с 1, чтобы избегать сравнивать первую posiciГіn, если сама.

2
ответ дан 24.11.2019, 13:37