目次から探す
std::vectorの便利な機能
ここまで、std::vector
の基本的な使い方について解説しましたが、続いてはより高度な機能について紹介します。
イテレータの利用
イテレータとは、コンテナ内の要素を順番にアクセスするためのオブジェクトです。
std::vector
でもイテレータを使用することができます。以下は、イテレータを使用して全要素を出力する例です。
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
for (auto itr = vec.begin(); itr != vec.end(); ++itr) {
std::cout << *itr << " ";
}
std::cout << std::endl;
return 0;
}
1 2 3 4 5
上記コードでは、vec.begin()
からvec.end()
までforループで回しています。また、*itr
で現在指している要素を取得しています。
要素のソート
std::vector
では、要素をソートすることができます。以下は昇順にソートする例です。
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {5, 3, 1, 4, 2};
std::sort(vec.begin(), vec.end());
for (auto x : vec) {
std::cout << x << " ";
}
std::cout << std::endl;
return 0;
}
1 2 3 4 5
上記コードでは、std::sort()
関数を使用して昇順にソートしています。また、forループ内では範囲for文を使用して全要素を出力しています。
要素の検索
std::vector
では、要素を検索することができます。以下は値3が存在するかどうか調べる例です。
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {5, 3, 1, 4, 2};
auto itr = std::find(vec.begin(), vec.end(), 3);
if (itr != vec.end()) {
std::cout << "Found: " << *itr << std::endl;
} else {
std::cout << "Not found" << std::endl;
}
return 0;
}
Found: 3
上記コードでは、std:find()
関数を使用して値3が存在するかどうか調べています。もし見つかった場合はその値を出力し、Not found
と表示されるようになっています。
次のページstd::vectorの注意点