В чем разница между следующими способами добавления элементов в вектор C++
Snippet1: следующий фрагмент выводит 0 1, но возвращает пустой вектор.
vector<int> trial() {
vector<int> ret;
ret.reserve(2);
ret[0] = 0;
ret[1] = 1;
cout << ret[0] << " " << ret[1] << "\n";
return ret;
}
Фрагмент 2: Следующий фрагмент выводит 0 1 и возвращает вектор, содержащий {0,1}.
vector<int> trial() {
vector<int> ret;
ret.push_back(0);
ret.push_back(1);
cout << ret[0] << " " << ret[1] << "\n";
return ret;
}
Почему фрагмент 1 не работает как фрагмент 2. Если я резервирую память и добавляю значения в вектор.
1 ответ
Решение
reserve()
не меняет размер вектора, что вы хотите resize()
Это.