c++ 无法将所需数量的元素推送到向量

csga3l58  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(134)

我是std::vector类的新手,正在探索根据用户请求将元素插入到向量中的方法。我尝试了一个循环,使用push_back()成员函数在vector中插入10个元素,但如果我从0开始索引,我的vector只存储9个元素。

  1. #include<iostream>
  2. #include<vector>
  3. using namespace std;
  4. int main()
  5. {
  6. vector<int> v1;
  7. for(int i = 0; i < 10; i++)
  8. {
  9. cin >> i;
  10. v1.push_back(i);
  11. }
  12. }

我使用的是Visual Studio,我只能将九个元素插入到我的矢量中。有什么问题吗?

aemubtdh

aemubtdh1#

您正在循环中替换循环变量i,这意味着您可能无法获得十次迭代。如果用户输入10,您将只获得一次迭代。
要解决这个问题,您必须使用一个单独的变量来阅读用户输入:

  1. #include <iostream>
  2. #include <vector>
  3. int main()
  4. {
  5. std::vector<int> v1;
  6. for(int i = 0; i < 10; i++)
  7. {
  8. int input;
  9. std::cin >> input;
  10. v1.push_back(input);
  11. }
  12. }

推荐阅读Why is "using namespace std;" considered bad practice?

展开查看全部

相关问题