string str = "1233121";
string str2("asd");
const char* str3 = "aaa";
str.find_first_not_of("2");
str.find_first_of("2");
str.find_last_of("2");
str.find_last_not_of("1");
str.append("5");
str.assign("1");
str.begin();
str.end();
str.cbegin();
str.cend();
str.compare(str2);
str.capacity();
str2.copy(const_cast<char*>(str3), 0, 1);
str.swap(str2);
str.c_str();
str.data();
str.front();
str.length();
str.empty();
//str.replace(str.begin(), str.begin() + 4, "3");
//str.replace(0, 5, str2);
str.clear();
stack<int> sta,sta1;
sta.push(1);
sta1.push(2);
sta.empty();
sta.size();
sta.top();
sta.swap(sta1);
sta.pop();
queue<int> que,que1;
que.push(1);
que1.push(2);
que.front();
que.back();
que.empty();
que.size();
que.swap(que1);
que.pop();
set<int> set1{ -1, 1, 1, 2, 3 }, set2{4,5,6};
set1.begin();
set1.end();
set1.cbegin();
set1.cend();
set1.rbegin();
set1.rend();
set1.crbegin();
set1.crend();
set1.emplace(12); // emplace: 使用直接构造
set1.insert(13); // insert : 拷贝对象到set,复制构造。
set1.empty();
// cout << *(set1.equal_range(3.5)).first << " " << *(set1.equal_range(3.5)).second << endl;
set1.erase(set1.begin());
cout << *(set1.find(2)) << endl;
set1.size();
set1.swap(set2);
int a[] = { 1,1,-1,3,3,4,5 };
cout << *(lower_bound(a, a + 5, 2)) << endl; // lower_bound返回值是一个迭代器,二分查找第一个小于或等于2的数字,找到返回该数字的地址
cout << *(upper_bound(a, a + 5, 2)) << endl; // 二分查找第一个小于num的数字,找到返回该数字的地址
map<int, string> map1;
pair<int, string> pair1(1,"1"); // 这个类把一对值(values)结合在一起,这些值可能是不同的类型(T1 和 T2)
cout << pair1.first << pair1.second << endl;
count(set1.begin(), set1.end(), 1);
count_if(set1.begin(), set1.end(), isLarge); // 统计有多少个元素满足 unaryPred
all_of(set1.begin(), set1.end(), isLarge); // 返回一个 bool 值,判断是否所有元素都满足 unaryPred
any_of(set1.begin(), set1.end(), isLarge); // 返回一个 bool 值,判断是否任意(存在)一个元素满足 unaryPred
adjacent_find(set1.begin(), set1.end());
search_n(set1.begin(), set1.end(), 10, 1); // 返回一个迭代器,从此位置开始有10个相等元素1,不存在则返回 end
search(set1.begin(), set1.end(), set2.begin(), ++set2.begin());
find_first_of(set1.begin(), set1.end(), set2.begin(), set2.end()); // 返回一个迭代器,指向第二个输入范围中任意元素在第一个范围中首次出现的位置,未找到则返回end1
find_end(set1.begin(), set1.end(), set2.begin(), set2.end()); // 类似 search,但返回的最后一次出现的位置。如果第二个输入范围为空,或者在第一个输入范围为空,或者在第一个输入范围中未找到它,则返回 end1
for_each(set1.begin(), set1.end(), isLarge);
mismatch(set1.begin(), set1.end(), set2.begin()); // 比较两个序列中的元素。返回一个迭代器的 pair,表示两个序列中第一个不匹配的元素
equal(set1.begin(), set1.end(), set2.begin());
lower_bound(set1.begin(), set1.end(), 2); // 返回一个非递减序列 [beg, end) 中的第一个大于等于值 val 的位置的迭代器
upper_bound(set1.begin(), set1.end(), 2); // 返回一个非递减序列 [beg, end) 中第一个大于 val 的位置的迭代器,不存在则返回 end
equal_range(set1.begin(), set1.end(), set2.begin(), set2.end());
binary_search(set1.begin(), set1.end(), 2);
fill(set1.begin(), set1.end(), 2); // 将 val 赋予每个元素,返回 void
copy(set1.begin(), set1.end(), set1.begin());
copy_if(set1.begin(), set1.end(), set2.begin(), isLarge);
copy_n(set1.begin(), 10, set2.begin());
move(set1.begin(), set1.end(), set2.begin()); // 对输入序列中的每个元素调用 std::move,将其移动到迭代器 dest 开始始的序列中
transform(set1.begin(), set1.end(), set2.begin(), isLarge); // 调用给定操作(一元操作),并将结果写到dest中
replace_copy(set1.begin(), set1.end(), set2.begin(),1,2); // 两个输入序列必须都是有序的,用 < 运算符将合并后的序列写入到 set2 中
merge(set1.begin(), set1.end(), set2.begin(), set2.end(),set1.begin()); // 将set1和set2合并后拷贝到set1中
iter_swap(set1.begin(), ++set1.begin());
replace(set1.begin(), set1.end(), 1, 2); // 将set1中1替换成2
copy_backward(set1.begin(), set1.end(), set2.begin()); // 将set1拷贝到set2中
move_backward(set1.begin(), set1.end(), set2.begin());
sort(set1.begin(), set1.end());
stable_sort(set1.begin(), set1.end()); // 稳定排序
is_sorted(set1.begin(), set1.end()); // 返回一个bool值,指出整个输入序列是否有序。
unique(set1.begin(), set1.end()); // 通过对覆盖相邻的重复元素(用 == 确定是否相同)实现重排序列。返回一个迭代器,指向不重复元素的尾后位置
min(set1.begin(), set1.end());
max(set1.begin(), set1.end());
minmax(set1.begin(), set1.end()); // 返回一个 pair,其 first 成员为提供的值中的较小者,second 成员为较大者。
min_element(set1.begin(), set1.end()); // 返回指向输入序列中最小元素的迭代器
max_element(set1.begin(), set1.end()); // 返回指向输入序列中最大元素的迭代器