Я инициализирую вектор, используя этот код ниже произошла ошибка.Как инициализировать вектор?
vector<int> e;
for(int i=0;i<10;i+)
{
e[i] = 0;
}
Я инициализирую вектор, используя этот код ниже произошла ошибка.Как инициализировать вектор?
vector<int> e;
for(int i=0;i<10;i+)
{
e[i] = 0;
}
Достаточно написать
std::vector<int> e(10);
, если вы хотите, чтобы каждый элемент был равен нулю.
В противном случае вы можете написать
std::vector<int> e(10, value);
Если у вас есть вектор типа std::vector<T>
затем декларации
std::vector<T> v(n);
эквивалентно
std::vector<T> v(n, T());
Как BoBTFish уже сказал, что вы не можете элементы доступа вектора с [], поскольку в векторе ничего нет. У вас есть несколько вариантов, как это сделать.
a. используйте push_back вместо «=», это будет выглядеть как
vector<int> e;
for (i = 0; i < 10 ; i++)
e.push_back(0);
b. инициализировать и пустить вектор, подобный этому
vector<int> e(10);
for (i = 0; i < 10 ; i++)
e[i] = 0;
c. Инициализировать вектор размера 10, заполненный 0s как этого
vector<int> e(10,0);
Что делает push_back? – Jonel
Он в основном добавляет элемент в конец вашего вектора. Он увеличивает размер вектора на единицу и присваивает ваше заданное значение новому созданному последнему элементу. –
[ 'e.push_back (some_data);'] (http://en.cppreference.com/w/cpp/container/vector/push_back) - в «векторе» ничего нет, так что вы не можете пытаться получить к нему доступ с помощью '[]'. – BoBTFish
'vector e (10, 0);' - инициализировать вектор с 10 элементами со значением 0. –
nils