C++ C++;向量::开始不工作
我使用下面的代码在vector中插入元素。 我知道其他方法,但想知道背后的逻辑。 有人能向我解释一下为什么begin和end方法不起作用吗C++ C++;向量::开始不工作,c++,vector,C++,Vector,我使用下面的代码在vector中插入元素。 我知道其他方法,但想知道背后的逻辑。 有人能向我解释一下为什么begin和end方法不起作用吗 int main() { vector<int> v[3]; for(vector<int>::iterator it = v.begin(); it!=v.end(); ++it) { *it = 1; } return 0; } intmain(){ 向量v[3]; for(ve
int main() {
vector<int> v[3];
for(vector<int>::iterator it = v.begin(); it!=v.end(); ++it) {
*it = 1;
}
return 0;
}
intmain(){
向量v[3];
for(vector::iterator it=v.begin();it!=v.end();++it){
*它=1;
}
返回0;
}
你没有向量,你有一个向量数组。数组没有begin()
或end()
。尝试更改向量v[3]代码>到向量v代码>应该可能是std::vectorv(3)代码>成为OP可能想要的东西。@Someprogrammerdude我主张省去这个参数,因为它会带来一些麻烦,在你得到性能关键代码之前,保留并不是那么重要。是的,我现在明白你的意思了。这意味着这个向量中的每个单元格可以有多个这样的向量?如果你在代码中应用我建议的修改,你将有一个向量,这个向量包含整数。现在您有一个由3个向量组成的数组。@dascandy如果要立即迭代元素,这一点非常重要;)它们不起作用,因为没有v
这样的标识符。只有一个向量数组是v[3]
。您的代码无法编译。您不需要向量数组。你需要一个向量。您可能指的是v(3)
,这是一个向量构造函数重载。相反,您使用v[3]
声明了一个包含三个向量的数组。