「boost::find」の版間の差分

提供: C++入門
移動: 案内検索
(ページの作成:「<!-- vim: filetype=mediawiki --> __TOC__ == 概要 == boostboost::findstd::vector の値を探すことが簡単にできます。Iteratorで...」)
(相違点なし)

2013年3月20日 (水) 13:07時点における版


概要

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


関連項目