常见C++代码报错
1.报错
34 16 D:\OpenJudge\PAT\c\1139_2.cpp
[Error] request for member 'push_back' in '(& v)->std::vector<_Tp, _Alloc>::operator[]<int, std::allocator<int> >(((std::vector<int>::size_type)__builtin_abs(que)))',
which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int> >::value_type {aka int}'
2.原因
我在使用vector<int> v[maxn]
,但是在调用的函数里面却无法使用二维的vector,导致出错。
3.改正
#include<iostream>
#include<vector>
#include<iomanip>
#define maxn 1000
using namespace std;
void insert(vector<int> &a){
a.push_back(1);
}
int main()
{
vector<int> s[maxn];
insert(s[0]);
for(int i =0;i< s[0].size();i++){
cout << s[0][i];
}
}
传递一个vector<int> a
时,需要使用引用,同时需要知道在调用函数时,是s[0]
作为参数。