记录下二维vector的遍历(输出)
注:二维vector的赋值不能跟二维数组一样用scanf或者cin写入
遍历(迭代器)
方法一
简洁写法
#include <bits/stdc++.h>
using namespace std;
void print() {
vector<vector<char>> res;
res.push_back({'a', 'b', 'c'});
res.push_back({'a', 'b'});
res.push_back({'a', 'b', 'c', 'd'});
for (auto i = res.begin(); i != res.end(); ++i) {
for (auto j = i->begin(); j != i->end(); ++j) {
cout << *j << " ";
}
cout << endl;
}
}
int main() {
print();
return 0;
}
或者
#include <bits/stdc++.h>
using namespace std;
void print() {
vector<vector<char>> res;
res.push_back({'a', 'b', 'c'});
res.push_back({'a', 'b'});
res.push_back({'a', 'b', 'c', 'd'});
vector<vector<char>>::iterator it;
vector<char>::iterator iter;
vector<char> ch;
for (it = res.begin(); it != res.end(); ++it) {
ch = *it;
for (iter = ch.begin(); iter != ch.end(); ++iter) {
cout << *iter << " ";
}
cout << endl;
}
}
int main() {
print();
return 0;
}
方法二
#include <bits/stdc++.h>
using namespace std;
int main() {
vector<vector<int>> vec;
vec.push_back({1, 2, 3});
vec.push_back({1, 2});
vec.push_back({1, 2, 3, 4});
for (decltype(vec.size()) i = 0; i < vec.size(); ++i) {
for (decltype(vec[i].size()) j = 0; j < vec[i].size(); ++j) {
cout << vec[i][j] << " ";
}
cout << endl;
}
return 0;
}
才疏学浅,望雅正!