Boost.Algorithmには、C++11で新たに追加されたアルゴリズムと、そのRange版が用意されています。 以下はall_ofの例: #include <iostream> #include <vector> #include <boost/algorithm/cxx11/all_of.hpp> bool is_even(int x) { return x % 2 == 0; } int main() { const std::vector<int> v = {2, 4, 6, 8, 10}; std::cout << std::boolalpha; // イテレータ版 { const bool result = boost::algorithm::all_of(v.begin(), v.end(), is_even); std::cout << result << std::e
目次 ホーム 連絡をする RSS Login Blog 利用状況 投稿数 - 1078 記事 - 2 コメント - 25638 トラックバック - 363 ニュース 著作とお薦めの品々は 著作とお薦めの品々は 東方熱帯林へ。 わんくま 東京勉強会#2 C++/CLI カクテル・レシピ 東京勉強会#3 template vs. generics 大阪勉強会#6 C++むかしばなし 東京勉強会#7 C++むかしばなし 東京勉強会#8 STL/CLRによるGeneric Programming TechEd 2007 @YOKOHAMA C++・C++/CLI・C# 適材適所 東京勉強会#14 Making of BOF 東京勉強会#15 状態遷移 名古屋勉強会#2 WinUnit - お気楽お手軽UnitTest CodeZine Cで実現する「ぷちオブジェクト指向」 CUnitによるテスト駆
C++11では新しく非メンバ関数のstd::begin, std::endが導入された。Elements of Modern C++ Style では、コンテナクラスcのメンバ関数c.begin(), c.end()ではなく、常に非メンバ関数版を利用するよう推奨している。 #include <vector> std::vector<int> v; int a[100]; std::sort( std::begin(v), std::end(v) ); // コンテナ std::sort( std::begin(a), std::end(a) ); // C配列 正直、C配列(T[]型)を使うくらいならstd::arrayを使うべきな気がする。どちらかというと非STLコンテナを汎用アルゴリズムに適合させる仕組みかも。 // アルゴリズム template <class C> bool has
現在、range-based forに対して、改良を加えられるチャンスがある。これはまだ議論中であり、次のFDISに入るかどうか分からないが、未来のC++0xユーザー候補が、今知るべきことだと思うので、ここで説明する。意見がほしい。 問題は、あるクラスを、どのようにrange-based forに対応させるかというものである。現行ドラフトを簡単に説明すると、以下のようになっている。 range-based forに渡した式を引数に取り、イテレーターを返す、begin(expr)、end(expr)を、ADLにより探す。 // Cの構造体による既存のコード struct Container { int * ptr ; std::size_t size ; } ; int * begin( Container & c ) { return ptr ; } int * end( Containe
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く