STL测试

array<int, 3> arr{ 1,2,3 }, arr1{4,5,6};
arr.begin();
arr.end();
arr.rbegin();
arr.rend();
arr.cbegin();
arr.cend();
arr.size();
arr.front();
arr.back();
int data = std::get<2>(arr);
arr.empty();
//arr.assign(10);
arr.at(1);
arr.data(); // 能够获得内部数组的首地址
arr.fill(10);
arr.swap(arr1);

vector<int> vec{ 1, 2, 3 }, vec1{4, 5, 6};
vec.begin();
vec.end();
vec.rbegin();
vec.rend();
vec.cbegin();
vec.cend();
vec.size();
vec.capacity();
vec.empty();
vec.reserve(100);
vec.empty();
vec.at(0);
vec.reserve(10);
vec.resize(20);
replace(vec.begin(), vec.end(), 1, 10);
vec.assign(10, 0);
vec.assign(vec1.begin(), vec1.end());
vec.clear();


deque<int> deq{ 1,2,3 };
deque<int> deq1{ 1,2,3 };
deq.begin();
deq.cbegin();
deq.rbegin();
deq.front();
deq.push_back(5);
deq.push_front(6);
deq.pop_back();
deq.pop_front();
deq.emplace_back(7);
deq.emplace_front(8);
deq.swap(deq1);

/* list list1{ 1,2,3 };
list list2{ 4,5,6 };
list1.merge(list2);
list1.insert(list1.end(), 4);
list1.erase(list1.end();
list1.remove(list1.size() - 1); */

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());       // 返回指向输入序列中最大元素的迭代器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值