Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > C/C++: Общие вопросы > Работа с вектором


Автор: tumanovalex 20.02.22, 13:19
В программе:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    vector<int> v1max, v2max;
    GetNum(v1, v2, v1max,  v2max);
    for (size_t i = 0; i < v1max.size(); i++)
    {
      out << setw(3) << v1max[i] << "  " << v2max[i]  << endl;
    }
в функции GetNum передаю вектора v1 и v2, которые инициализированы, а после обработки этих векторов получаю вектора v1max и v2max. В функции вектора v1max и v2max создаются правильно (размер 5), но v1max.size() дает 0. Подскажите, пожалуйста, как правильно работать с векторами, чтобы можно было к ним обращаться после использования функции. Проект прикрепил.
CppStudyCons.zip (, : 31)

Автор: Славян 20.02.22, 14:08
Код не смотрел, но есть подозрения, что вы эти векторы внутри и создаёте, а наружу ничего и не выдаётся, посему и ноль... Но код надо смотреть, конечно. :blush:

Автор: tumanovalex 20.02.22, 14:20
Нет, векторы создаю извне функции, просто надо было в определении функции указать &v1max

Автор: popsa 28.02.22, 08:53
Тебе надо передать в функцию ссылку на вектор -
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    void GetNum(vector<int> v1, vector<int> v2, vector<int> &v1max, vector<int> &v2max)

В твоем текущем коде передается копия v1max и v2max

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)