C++algorithmライブラリでの一般的なアルゴリズムの例

18800 ワード


ブルーブリッジカップを用意する必要があるので、C++を復習して、ここで共有します.文章はプレゼンテーションの結果がなくて、みんなは自分でプレゼンテーションすることができます.
検索
vector<int> v{ 1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 9, 0 };

//              
adjacent_find(v.begin(), v.end());        
 
//     
binary_search(v.begin(), v.end(), 7);       
 
//          
count(v.begin(), v.end(), 6);         
 
//          、LAMBDA    
count_if(v.begin(), v.end(), [](int x) {return x >= 3; });  
 
//              
equal_range(v.begin(), v.end(), 2);        
 
//             end
find(v.begin(), v.end(), 9);         
 
//               
find_if(v.begin(), v.end(), [](int x) {return x >= 3; });  

.
ツールバーの
vector <int> b{ 3, 3, 3, 4, 4, 5, 6, 9 };
vector <int> s(v.size() + b.size());

//         // [](int x, int y) {return x >= y; } 
sort(v.begin(), v.end());       

//     
merge(v.begin(), v.end(), b.begin(), b.end(), s.begin());  

//   
reverse(v.begin(), v.end());         

//     
random_shuffle(v.begin(), v.end());        

.
コピーと置換
vector<int> c(v.size());

//   
copy(v.begin(), v.end(), c.begin());       

//       
replace(c.begin(), c.end(), 2, 666);       

//           
swap(c, b);              

//                
fill(v.begin(), v.end(), 5);         

.
しゅうごうアルゴリズム
vector<int> uni(v.size() + b.size());
sort(v.begin(), v.end());
sort(b.begin(), b.end());

//   
//set_union(v.begin(), v.end(), b.begin(), b.end(), uni.begin()); 

//     
//set_intersection(v.begin(), v.end(), b.begin(), b.end(), uni.begin()); 

//   
//set_difference(v.begin(), v.end(), b.begin(), b.end(), uni.begin());

.
ループアルゴリズム
//各要素の遍歴は変更不可
for_each(uni.begin(), uni.end(), [](int x) {cout << x << endl; });  
vector<char> str{ 'a','s','d','g','v'};

//        ,         
transform(str.begin(), str.end(), str.begin(), ::toupper);