常见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]​​作为参数。