Почему он говорит, что «push_back» не был объявлен?Почему он говорит, что «push_back» не был объявлен?
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> v(30);
v[0].push_back(0);
return 0;
}
Почему он говорит, что «push_back» не был объявлен?Почему он говорит, что «push_back» не был объявлен?
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> v(30);
v[0].push_back(0);
return 0;
}
v[0]
является ссылкой на начальный элемент в vector
; это не самый vector
. Элемент имеет тип int
, который не является объектом типа класса и поэтому не имеет функций-членов.
Вы ищете v.push_back(0);
?
Обратите внимание, что vector<int> v(30);
создает vector
с 30 элементами в нем, каждый со значением нуля. Вызов v.push_back(0);
увеличит размер vector
до 31. Это может быть или не быть поведением, которое вы хотите; если это не так, вам нужно уточнить, что именно вы пытаетесь сделать.
Спасибо. Теперь я понимаю. – Rashid
Вам необходимо сделать v.push_back(0)
как push_back
- это метод вектора, а не его элемент.
Попробуйте это:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> v(30);
v.push_back(0);
return 0;
}
Проблема заключается в том, что v [0] является первым элементом вектора, который является Int. Имя вектора v.
Просто используйте v.push_back(0);
Вы должны нажать_back в вектор. Не в конкретный элемент вектора.
v.push_back(0)
как v[0]
является int
, а не vector
.
У вас неправильный тип.
v
имеет тип Вектор. v[0]
is NOT вектор, скорее, это ссылка на первый элемент (который будет int
).
В результате v[0]
не имеет метода push_back
.
Только сам вектор (v
) имеет метод.
Просьба предоставить полное точное сообщение об ошибке, включая любые номера строк, на которые оно ссылается. – abelenky