此实例主要是对迭代器、静态数组array、动态数组vector的简单应用
main.cpp部分:
#include <iostream>
#include <array> // 静态数组
#include <vector> // 动态数组
#include <ctime>
using namespace std;
template <typename T>
void show(T container)
{
// C语言: auto 是一个无用的关键字
// C++: auto 代表自动获取数据的类型
for(auto element : container) //1,使用枚举化for循环遍历容器
cout << element << '\t';
cout << endl;
for(auto it=container.begin(); //2,使用迭代器遍历容器(正序)
it != container.end(); it++)
cout << *it << '\t';
cout << endl;
for(auto it=container.rbegin(); //3,使用迭代器遍历容器(反序)
it != container.rend(); it++)
cout << *it << '\t';
cout << endl;
}
int main()
{
array<int, 10> a; //静态数组
srand(time(NULL)); //产生随机数
for(int i=0; i<a.size(); i++)
a.operator [](i) = rand()%1000;
show(a);
cout << endl;
vector<int> b; //动态数组
for(auto it=a.begin(); //遍历静态数组a
it != a.end(); it++)
b.push_back(2*(*it)); //将静态数组a的各个值乘2,存放到动态数组b里面
// for(int k : a) //遍历静态数组a
// b.push_back(2*k); //将静态数组a的各个值乘2,存放到动态数组b里面
show(b);
return 0;
}
运行结果: