#include <vector> #include <string> #include <iostream> #include <algorithm> using namespace std; bool chk(string s) { return s.size() > 5; } int main() { vector<string> v; v.push_back("Warsaw"); v.push_back("NewYork"); // all of cout << ( all_of(v.begin(),v.end(),chk) ? "[GOOD] all good" : "some failed or all failed" ) << endl; v.push_back("Tokyo"); cout << ( all_of(v.begin(),v.end(),chk) ? "[GOOD] all good" : "some failed or all failed" ) << endl; v.clear(); v.push_back("Rome"); v.push_back("Nagoya"); // any of cout << ( any_of(v.begin(),v.end(),chk) ? "[GOOD] some good" : "all failed" ) << endl; v.erase( find( v.begin(),v.end(),"Nagoya")); v.push_back("Osaka"); cout << ( any_of(v.begin(),v.end(),chk) ? "[GOOD] some good" : "all failed" ) << endl; // none of cout << ( none_of(v.begin(),v.end(),chk) ? "[GOOD] all failed" : "not all failed" ) << endl; v.erase(find(v.begin(),v.end(),"Osaka")); v.push_back("Mangalore"); cout << ( none_of(v.begin(),v.end(),chk) ? "[GOOD] all failed" : "not all failed" ) << endl; return 0; }
水曜日, 10月 09, 2013
all of, any of, none of
リスト・配列要素検査の関数all_of,any_of,none_ofは是非覚えておくとよい.
C++でforeach
ForeachはJavaやPythonといった他の言語で多用されている反復処理用構文である.
C++ではSTLのalgorithmがそれを提供してくれている.是非使おう.
C++ではSTLのalgorithmがそれを提供してくれている.是非使おう.
#include <vector> #include <string> #include <iostream> #include <algorithm> using namespace std; void show(const string s) { cout << s << ' '; } int main() { vector<string> v; v.push_back("Algonquin"); v.push_back("Iroquois"); for_each(v.begin(),v.end(),show); return 0; }
lvalueとrvalue
C++のコンテクストでたまに見かける用語の一つがlvalueとrvalueである.
これを知らないと苦労することもあるかもしれないので是非覚えておいてほしい.
lvalue .. いわゆる変数・定数.2回以上使いまわされることもあるかもしれないデータである.
rvalue .. いわゆる代入される又は出現後即揮発するデータ.
int i = 100 * 3;
とあればiがlvalue, 100 * 3 がrvalueである.
これを知らないと苦労することもあるかもしれないので是非覚えておいてほしい.
lvalue .. いわゆる変数・定数.2回以上使いまわされることもあるかもしれないデータである.
rvalue .. いわゆる代入される又は出現後即揮発するデータ.
int i = 100 * 3;
とあればiがlvalue, 100 * 3 がrvalueである.
登録:
投稿 (Atom)