二维数组的auto遍历格式
for (auto& aaa : newarr) {
for (auto& aaakid : aaa)
cout << aaakid << " ";
cout << endl;
}
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void show(int val) {
cout << val << endl;
}
class xinxi {
public:
xinxi(string name, int age) {
this->name = name;
this->age = age;
}
string name;
int age;
};
int main() {
cout << "每个容器都有自己专属的迭代器" << endl;
cout << "常用容器的迭代器都是双向和随机访问迭代器" << endl;
vector <int> arr;
//push_back尾插
for (int i = 1; i <= 5; i++)
arr.push_back(i * 10);
vector <int> ::iterator begin = arr.begin();
vector <int> ::iterator end = arr.end();
while (begin != end)
cout << *begin++ << endl;
cout << endl;
//头文件要包括algorithm
for_each(arr.begin(), arr.end(),show);
cout << endl;
for (auto a : arr) {
cout << a << endl;
}
vector <xinxi> xinxibiao;
xinxi x1("tom", 6);
xinxi x2("jerry", 5);
xinxibiao.push_back(x1);
xinxibiao.push_back(x2);
for (auto a : xinxibiao) {
cout <<"姓名:"<<a.name<<"年龄:"<<a.age << endl;
}
vector <xinxi*> xinxibiao2;
xinxi x3("tom", 7);
xinxi x4("jerry", 6);
xinxibiao2.push_back(&x3);
xinxibiao2.push_back(&x4);
for (auto aa : xinxibiao2) {
cout << "姓名:" << (*aa).name << "年龄:" << (*aa).age << endl;
}
cout << "容器嵌套容器" << endl;
vector <vector <int>> newarr;
vector <int> kid1;
for (int i = 0; i < 5; i++)
kid1.push_back(i);
vector <int> kid2;
for (int i = 5; i < 10; i++)
kid2.push_back(i);
vector <int> kid3;
for (int i = 10; i < 15; i++)
kid3.push_back(i);
newarr.push_back(kid1);
newarr.push_back(kid2);
newarr.push_back(kid3);
/* for (int i = 0; i < 15; i++) {
cout << newarr[i / 5][i % 5] << " ";
if ((i+1) % 5 == 0&&i!=0)cout << endl;
}*/
//C++本质没有多维数组,只是一维数组的多次嵌套
for (auto& aaa : newarr) {
for (auto& aaakid : aaa)
cout << aaakid << " ";
cout << endl;
}
}