boost::adjacent find

提供: C++入門
移動: 案内検索
スポンサーリンク


読み方

概要

配列のデータの重複(ちょうふく)をチェックするには、 boost::adjacent_find を利用すると簡単です。

std::vectorの重複を確認する例

これは、std::vector の値に重複があるか確認する例です。

ソースコード boost_adjacent_find_vector.cpp

#include <iostream>
#include <vector>
 
#include <boost/range/algorithm.hpp>
 
using namespace std;
 
 
void
test (vector<int>& v) {
        if (v.end () == boost::adjacent_find(v)) {
                std::cout << "not duplicate" << std::endl;
        } else {
                std::cout << "duplicate" << std::endl;
        }
}
 
int
main (int argc, char *argv[])
{
        vector<int> v;
 
        v.push_back ( 3 );
        v.push_back ( 4 );
        v.push_back ( 1 );
        v.push_back ( 2 );
        v.push_back ( 1 );
        v.push_back ( 1 );
        v.push_back ( 2 );
 
        cout << "None sorted vector" << std::endl;
        test (v);
 
        boost::sort(v);
        cout << "After sorted vector" << std::endl;
        test (v);
 
        vector<int> v2;
        v2.push_back(1);
        v2.push_back(2);
        cout << "None duplicate vector" << std::endl;
        test (v2);
 
        return 0;
}

コンパイル

g++  -I/usr/local/include boost_adjacent_find_vector.cpp -o boost_adjacent_find_vector

実行例

% ./boost_adjacent_find_vector
None sorted vector
duplicate
After sorted vector
duplicate
None duplicate vector
not duplicate

関連項目




スポンサーリンク