#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)