wiki 说:
矢量的元素是连续存储的。和
向量允许随机访问;也就是说,矢量的元素可以以与数组元素相同的方式引用(通过数组索引)。
那么我们为什么不能将矢量元素输入为:
vector<int> v;
for(int i=0;i<3;i++)
{
cin>>v[i];
}
答案 0 :(得分:4)
您需要预先调整向量的大小 - 正如其他答案所说 - 或者您可以使用C ++标准库。然后,您的for
循环的等价物是以下一行:
copy_n(istream_iterator<int>(cin), 3, back_inserter(v));
它负责分配/调整大小。
答案 1 :(得分:3)
问题是你需要先分配向量的元素。所以试试vector<int> v(4);
,所以它将从4个元素开始。然后你可以加载值。
答案 2 :(得分:3)
你的矢量现在没有元素。尝试将其分配为:
vector<int> v(5);
然后你的方法就可以了。