一.泛型算法总结
auto ret_it = find(vec1.begin(),vec1.ebd(),3);
auto ret_it = find_if(vec1.begin(),vec1.ebd(),[](int val){return val>3;});
auto sum = accumulate(vec1.begin(),vec1.end(),0);
bool ret = equal(vec1.begin(),vec1.end(),vec2.begin());
back_inserter(vec1) = 1;
*back_inserter(vec1) = 1;
vec1.pushback(1);
*front_inserter(lst1) = 1;
fill(vec1.begin(),vec1.begin()+3,123);
fill_n(vec1.begin(),3,123);
vector<int>vec2;
vec2.resize(100);
copy(vec1.begin(),vec1.end(),vec2.begin());
copy(vec1.begin(),vec1.end(),back_inserter(vec2));
vector<int>target;
copy_if(vec1.begin(),vec1.end(),back_inserter(target),[](int val){return val>2;});
replace(vec1.begin(),vec1.end(),1,11);
replace_if(vec.begin(), vec.end(), bind2nd(myreplace(),val),888);
sort(vec1.begin(),vec1.end());
auto ret_it = unique(vec1.begin(),vec1.end());
vec1.erase(ret_it,vec1.end());
set<int>set1(vec1.begin(),vec.end());
class mycmp
{
public:
bool operator()(int val1, int val2)const
{
return val1 > val2;
}
};
set<int,mycmp>set1;
sort(vec1.begin(),vec1.end());
sort(vec1.begin(),vec1.end(),isgreater<int>());
swap(vec1, vec2);
reverse(vec1.begin(),vec1.end());
reverse_copy(vec.begin(), vec.end(), back_inserter(vec_copy));
vector<int> vec1 = { 1,2,3,4,5,6,7 };
auto ret_it = remove(vec1.begin(), vec1.end(),5);
vec1.erase(ret_it, vec1.end());
auto remove_it = remove_if(vec1.begin(), vec1.end(), [](int val){return val > 4; });
vec1.erase(remove_it, vec1.end());
vector<int>vec1 = { 1,3,5,7,9};
vector<int>vec2 = { 2,4,6,8,10,0};
sort(vec1.begin(), vec1.end());
sort(vec2.begin(), vec2.end());
vector<int>target;
target.resize(vec1.size()+vec2.size());
merge(vec1.begin(), vec1.end(),vec2.begin(), vec2.end(),taget.begin());
for_each(target.begin(), target.end(), [](int val) {cout << val << " "; });
random_shuffle(vec1.begin(),vec1.end());
vector<int> vec1 = { 1,3,3,12,13,12,4,5,6,7,8,9 };
sort(vec1.begin(), vec1.end());
vector<int> vec2 = { 1,3,3,4,456,123};
sort(vec2.begin(), vec2.end());
vector<int> target;
target.resize(min(vec1.size(), vec2.size()));
auto end_it = set_intersection(vec1.begin(), vec1.end(), vec2.begin(), vec2.end(), target.begin());
for_each(target.begin(), end_it, [](int val) {cout << val << " "; });
for_each(target.begin(), target.end(), [](int val) {cout << val << " "; });
vector<int> vec1 = { 1,3,3,12,13,12,4,5,6,7,8,9 };
sort(vec1.begin(), vec1.end());
vector<int> vec2 = { 1,3,3,4,456,123};
sort(vec2.begin(), vec2.end());
vector<int> target;
target.resize(vec1.size()+vec2.size(),0);
auto end_it = set_union(vec1.begin(), vec1.end(), vec2.begin(), vec2.end(), target.begin());
for_each(target.begin(), end_it, [](int val) {cout << val << " "; });
for_each(target.begin(), target.end(), [](int val) {cout << val << " "; });
vector<int> vec1 = { 1,3,3,12,13,12,4,5,6,7,8,9 };
sort(vec1.begin(), vec1.end());
vector<int> vec2 = { 1,3,3,4,456,123};
sort(vec2.begin(), vec2.end());
vector<int> target;
target.resize(max(vec1.size(),vec2.size()),0);
auto end_it = set_difference(vec1.begin(), vec1.end(), vec2.begin(), vec2.end(), target.begin());
for_each(target.begin(), end_it, [](int val) {cout << val << " "; });
end_it = set_difference(vec2.begin(), vec2.end(), vec1.begin(), vec1.end(), target.begin());
for_each(target.begin(), end_it, [](int val) {cout << val << " "; });
二.各容器成员函数总结
一.list容器(区别于vector容器的额外成员函数)
lst1.merge(lst2);
merge(lst1.begin(), lst1.end(), lst2.begin(), lst2.end(), lst3.begin());
lst1.reverse();
lst1.sort();
lst1.unique();
lst1.remove(5);
三.容器的使用
set<int> set1 = { 2,1,3,4,5 };
set1.insert(4);
cout << "set1.size()= "<<set1.size() << endl;
for_each(set1.begin(), set1.end(), [](int val) {cout << val << " "; });
vector<int> vec1 = { 1,2,3,4,5,6 };
pair<string, vector<int>> pair1 = {"kkkk",vec1};
pair1.second.push_back(99);
pair<string, string> pair2;
pair2 = make_pair("aaaaaa", "bbbbbb");
map<int, string> map1 = { {1,"aaaa"},{2,"bbbbb"} };
map1.insert(make_pair(3, "ccccc"));
map1.insert(pair<int, string>(4, "dddd"));
map1[5] = "eeee";
map<int, string, mycompare> map1;
map1[2] = "bbbb";
map1[4] = "dddd";
map1[3] = "cccc";
map1[1] = "aaaa";
print_map(map1);