vectorのサイズを変更してから要素を入れる

vector<int> v;
// do something...

v.resize(10);
v.push_back(3);

C++ std::vector resizeとreserveの違い | ぬの部屋(仮)

iteratorのループ

vector<int> v;
// do something...
for (auto itr = v.begin(); itr != v.end(); ++itr) {
	cout << *itr << endl;
}

map<int, char> m;
// do something...
for (auto itr = m.begin(); itr != m.end(); ++itr) {
	cout << itr->first << " " << itr->second << endl;
}

iteratorは抽象化されたポインタ

値渡しっぽいので元のコンテナの値の変更はできない

値にアクセスするには 「*****」をつける。

ポインタなのでメンバにアクセスする時は「.」ではなく「

逆順のループ

vector<int> v;
// do something...
for (auto itr = v.rbegin(); itr != v.rend(); ++itr) {
	cout << *itr << endl;
}

rbegin()とrend()を使うと逆順のイテレータを返してくれる

範囲ループ

さらに範囲ループ(C++ 11 〜?)を使って簡単に書くと

vector<int> v;
// do something...
for (auto& i : v) {
	cout << i << endl;
}

map<int, char> m;
// do something...
for (auto& i : m) {
	cout << i.first << " " << i.second << endl;
}

範囲ループを使うとi には要素そのものが入るのでそのまま表示ができる。