MENU

【C++】STLのstd::vectorの使い方について詳しく解説

目次から探す

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と表示されるようになっています。

1 2 3

目次から探す