c++ - 不期望向量的 C++ 输出元素
问题描述
我正在练习矢量和范围 for 循环,我的代码:
#include <iostream>
#include <vector>
using namespace std;
int main(){
int size,element;
cout<<"enter vector size: ";
cin>>size;
vector<int>v(size);
for(int i=0; i<size; i++){
cout<<i<<"\t";
cin>>element;
v.push_back(element);
}
for(int p : v) cout<<p<<" ";
}
我输入了 3,然后输入了 1、2、3,但输出为“0 0 0 1 2 3”。你能解释一下 0 是从哪里来的吗?非常感谢你!
解决方案
vector<int>v(size);
创建一个size
零初始化元素的向量(在您的情况下为 3)。 push_back
然后将新元素添加到此向量的末尾,这解释了您得到的结果。
您可以使用 为向量中的元素保留空间reserve
。如果您事先知道要添加多少元素,这会加快速度。
推荐阅读
- node.js - 如何从原始字符串中获取 argv
- java - 为什么 Eclipse 调试器在调试时会打开随机类?
- reactjs - 始终使用 React Hooks 获取其他本地状态的初始值
- javascript - 我应该什么时候开始和结束我的 node.js SQL 连接,我应该从一开始就使用池吗?
- java - 当我回到屏幕时游戏停止
- python - win10检测不到conda中pip安装的egg包
- scala - 如何以有效的方式从两个列表中创建一个新列表
- android - 如何通过按钮删除recyclerview适配器中的最后一项?
- python - Python argparse.ArgumentParser 无法区分 `--modes` 和 `--mode`
- django - 为什么我会收到 django 的循环导入错误?