C++ C++;向量::开始不工作

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

我使用下面的代码在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(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]
声明了一个包含三个向量的数组。