【发布时间】:2018-08-01 16:07:09
【问题描述】:
我有这个代码:
#include <iostream>
#include <vector>
using namespace std;
const int NMAX=10;
vector <int>sir[NMAX];
int s[10];
int main()
{
int n, i;
cin>>n;
for(i=1;i<=n;i++)
cin>>s[i];
sir.push_back(s);
for(i=0;i<sir[0].push_back();i++)
cout<<sir[0][i]<<" ";
return 0;
}
在第 15 行我有一个错误:
请求'sir'中的成员'push_back',它不是类类型'std::vector[10]'。
为什么会出现这个错误?
【问题讨论】:
-
sir[0].push_back()什么都不推。push_backhere 需要int来推回。push_back也返回void,因此没有返回值可与i进行比较。 -
修复编译器问题的方法不止一种。从我们的代码中不清楚您要做什么。
-
我想要一个 2D int 向量
-
@B.Botzki 仔细查看您自己的代码 --
{whatever_type} sir[NMAX];。sir是一个 {whatever_type} 数组。然后你这样做:sir.。没有可应用于数组的.运算符。所以你的问题是 notstd::vector. -
这里的第一个问题是,从声明
vector <int>sir[NMAX];来看,sir是一个向量数组,而不是单个向量。 C 风格的数组显然没有push_back()方法,这是您的编译器错误的来源。您还应该问自己i<sir[0].push_back()应该做什么,push_back需要一个参数并返回void
标签: c++ vector compiler-errors