boost::find

提供: C++入門
2013年3月23日 (土) 16:33時点におけるDaemon (トーク | 投稿記録)による版 (Daemon がページ「Boost::find」を「boost::find」に移動しました)

移動: 案内検索
スポンサーリンク


概要

boostboost::findstd::vector の値を探すことが簡単にできます。Iteratorでグルグル回して比較する必要はありません。

boost_find_vector.cpp の例

ソースコード boost_find_vector.cpp

#include <iostream>
#include <vector>
 
#include <boost/range/algorithm.hpp>
 
using namespace std;
 
int
main (int argc, char *argv[])
{
        vector<int> v;
 
        v.push_back ( 1 );
        v.push_back ( 2 );
        v.push_back ( 3 );
        v.push_back ( 4 );
 
        vector<int>::iterator it = boost::find(v, 3);
 
        cout << *it << endl;
 
        return 0;
}

コンパイル

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

実行例

% ./boost_find_vector
3

値が見つからない例

ソースコード boost_find_vector.cpp

#include <iostream>
#include <vector>
 
#include <boost/range/algorithm.hpp>
 
using namespace std;
 
int
main (int argc, char *argv[])
{
 
        vector<int> v;
 
        v.push_back ( 1 );
        v.push_back ( 2 );
        v.push_back ( 3 );
        v.push_back ( 4 );
 
        vector<int>::iterator it = boost::find(v, 100); // 見つからない値
 
        cout << *it << endl;
        bool b = (it == v.end());
        cout << b << endl;
 
        return 0;
}

コンパイル

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

実行例

値が見つからない場合は、Iteratorは、end()と同じ値です。

% ./boost_find_vector
-1
1


関連項目




スポンサーリンク