我是C++的新手,我正在尝试用C++学习矢量.
我写了如下的小程序.我喜欢像C#一样foreach(薪水中的var sal),但它不允许我这样做,所以我用谷歌搜索它,发现我必须使用iterator ..我能够编译并运行这个程序,但我没有得到预期输出..我得到"0 0 0 0 0 0 1 2 3 4 5 6 7 8 9"而不是"0 1 2 3 4 5 6 7 8 9"..
谁能解释一下为什么?谢谢.
#include <iostream>
#include <iomanip>
#include <vector>
using namespace std;
void show(int i)
{
cout << i << " ";
}
int main(){
vector<int> salaries(5);
for(int i=0; i < 10; i++){
salaries.push_back(i);
}
for_each(salaries.begin(), salaries.end(), show);
}
Run Code Online (Sandbox Code Playgroud)
你创建了一个包含5个元素的向量,然后再将10个元素推到最后.这会给你总共15个元素,以及你所看到的结果.尝试更改向量的定义(特别是构造函数调用),然后设置.怎么样:
vector<int> salaries;
Run Code Online (Sandbox Code Playgroud)