При переводе значения в вектор ничего не происходит - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь переместить значения в вектор.Но, похоже, его полно 0.

#include <iostream> 
#include <vector>
using namespace std;

int main()
{
    vector<int> a;
    int size = 5;
    int b;
    bool g = false; // In different cases I initialise of not 
    if (!g) a.resize(size); // initialise vector with such code

    for (int i = 0; i < size; i++) 
    {

        if (!a.empty())
        {
            cout << "Type number ";
            cin >> b;
            a.push_back(b);
            cout << "a[" << i << "] = " << a[i] << ", i = " << i << ", b = " << b << endl;
        }
    }
    system("pause");
}

Код консоли

Type number 0
a[0] = 0, i = 0, b = 0
Type number 1
a[1] = 0, i = 1, b = 1
Type number 2
a[2] = 0, i = 2, b = 2
Type number 3
a[3] = 0, i = 3, b = 3
Type number 4
a[4] = 0, i = 4, b = 4

Что происходит?Я думаю, что есть ошибка, но я не могу ее получить

1 Ответ

0 голосов
/ 25 сентября 2018

Если вы установите размер вектора, он будет иметь этот размер.Отталкивание другого элемента добавляет к вектору, увеличивая размер векторов.Он не изменяет существующие элементы.

Кажется, вы хотите вместо reserve, который устанавливает емкость (и резервирует память), но не устанавливает размер.

...