stl
zhuikefeng
人工智能爱好者
展开
-
标准库头文件:string
1.常用操作getline(cin, str);//将输入写入到str中int stoi( const string& str );//将str转换成整数,要求首字符必须是数字long stol( const string& str );//将str转换成long型,要求首字符必须是数字long long stoll( const string& str );/...原创 2020-03-09 16:59:40 · 2720 阅读 · 0 评论 -
《Effective STL》条款解读
条款01:慎重选择容器类型vector、list和deque有着不同的复杂度,vector是默认使用的序列类型。当需要频繁在序列中间做插入和删除操作时,应使用list。当大多数插入和删除操作发生在序列的头部和尾部时,应使用deque。 可以将容器分为连续内存容器和基于节点的容器两类。连续内存容器把元素存放在一块或多块(动态分配的)内存中,当有新元素插入或已有的元素被删除时,同一块内存中的其他元素要向前或向后移动,以便为新元素让出空间,或者是填充被删除元素所留下的空隙。这种移动会影响到效率和异常安全性。原创 2020-08-22 10:49:34 · 973 阅读 · 0 评论 -
STL常用操作:array
1.初始化array<int, 10> arr1; arr1[0]=1;arr1[1]=2; //初始化10个int的array,并赋值array<int, 10> arr2{ 1, 2, 3}; //使用initializer_list初始化2.常用操作arr.at(0); //返回第一个元素arr.size(); //返回容器...原创 2020-03-09 12:03:26 · 287 阅读 · 0 评论 -
STL常用操作:stack
1.初始化stack<int> s1; //创建空栈stack<int> s2(s1); //拷贝构造deque<int> dq{1,2,3,4,5}; stack<int> s3(dq); //deque构造stack<int> s4(move(s2)); //移动构造2.常用操作s.pus...原创 2020-03-09 11:16:01 · 236 阅读 · 0 评论 -
STL常用操作:queue
1.初始化queue<int> pq1; //创建空队列,大顶堆queue<int> pq2(pq1); //拷贝构造deque<int> dq{1,2,3,4,5}; queue<int> pq3(dq); //deque构造queue<int> pq4(move(pq2)); //移动构造2.常...原创 2020-03-09 11:02:05 · 213 阅读 · 0 评论 -
STL常用操作:priority_queue
1.初始化priority_queue<int> pq1; //创建空队列,大顶堆priority_queue<int,vector<int>,greater<int>> pq2; //创建空队列,小顶堆priority_queue<int> pq3(priority_queue1); //拷贝构造prior...原创 2020-03-09 10:48:01 · 343 阅读 · 1 评论 -
STL常用操作:unordered_multiset
1.初始化unordered_multiset<int> set1; //创建空setunordered_multiset<int> set2(set1); //拷贝构造unordered_multiset<int> set3(set1.begin(), set1.end()); //迭代器构造unordered_multiset<...原创 2020-03-08 20:32:31 · 800 阅读 · 0 评论 -
STL常用操作:unordered_set
1.初始化unordered_set<int> set1; //创建空setunordered_set<int> set2(set1); //拷贝构造unordered_set<int> set3(set1.begin(), set1.end()); //迭代器构造unordered_set<int> set4(arr,arr...原创 2020-03-08 19:45:37 · 10381 阅读 · 0 评论 -
STL常用操作:multiset
1.初始化multiset<int> set1; //创建空set,再赋值multiset<int> set2(set1); //拷贝构造multiset<int> set3(set1.find(1), set1.end()); //迭代器构造multiset<int> set4(arr, arr+5); //数组构造...原创 2020-03-08 18:21:14 · 695 阅读 · 0 评论 -
STL常用操作:set
1.初始化set<int> set1; //创建空set,再赋值set<int> set2(set1); //拷贝构造set<int> set3(set1.find(1), set1.end()); //迭代器构造set<int> set3(arr, arr+5); //数组构造set<int> set4(...原创 2020-03-08 16:35:29 · 309 阅读 · 0 评论 -
STL常用操作:unordered_multimap
1.初始化unordered_multimap<string, int> map1;unordered_multimap<string, int> map2(map1); //拷贝构造unordered_multimap<string, int> map3(map1.find("abc"), map1.end()); //迭代器构造uno...原创 2020-03-08 13:48:31 · 1815 阅读 · 0 评论 -
STL常用操作:unordered_map
1.初始化unordered_map<string, int> map1; map1[string("abc")] = 1; map1["def"] = 2;//创建空map,再赋值unordered_map<string, int> map3(map1); //拷贝构造unordered_map<string, int> map2(map1.f...原创 2020-03-08 11:17:06 · 2512 阅读 · 0 评论 -
STL常用操作:multimap
1.初始化map<std::string, int> map1 {{"abc", 100},{"abc", 1},{"dfg", 2}};//使用initializer_list初始化map<string, int> map3(map1); //拷贝构造,相同键则按照初始化顺序排列map<string, int> map2(map1.find("...原创 2020-03-07 20:58:59 · 404 阅读 · 0 评论 -
STL常用操作:map
1.初始化map<string, int> map1; map1[string("abc")] = 1; map1["def"] = 2;//创建kongmap,再赋值map<string, int> map3(map1); //拷贝构造map<string, int> map2(map1.find("abc"), map1.end()); ...原创 2020-03-07 15:11:22 · 394 阅读 · 0 评论 -
STL常用操作:deque
1.初始化deque<int> deq; //创建一个空的deque deque<int> deq(deq1); //用一个已有的deque初始化当前dequedeque<int> deq(5); //创建一个deque,含有5个元素0deque<int> deq(3, 5); //创建一个deque...原创 2020-03-07 10:49:53 · 274 阅读 · 0 评论 -
STL常用操作:forward_list
1.初始化forward_list<int> f_lst1; //空forward_listforward_list<int> f_lst2(3,77); //初始化3个77的forward_listforward_list<int> f_lst3(f_lst2.begin(), f_ls...原创 2020-03-06 16:46:49 · 272 阅读 · 0 评论 -
STL常用操作:list
1.初始化list<int> lst1; //创建空listlist<int> lst2(5); //创建含有5个元素的listlist<int> lst3(3,2); //创建含有3个元素的listlist<int> lst4(lst2); //使用lst2初始化lst4list<i...原创 2020-03-06 10:36:16 · 318 阅读 · 0 评论 -
STL常用操作:vector
1.初始化vector<int> vec1; //默认初始化,vec1为空vector<int> vec2(vec1); //使用vec1初始化vec2vector<int> vec3(vec1.begin(), vec1.end());//使用vec1初始化vec2vector<int> vec4(10); //10个值为...原创 2020-03-05 20:43:42 · 318 阅读 · 0 评论 -
C++经典案例:给定出栈序列判定是否合法
问题描述: 对于给定入栈序列,不同的入栈出栈操作顺序,会产生不同的出栈序列,现给定出栈序列,判定其是否合法。输入范例:5 12345 54312,第一个数表示序列总数,第二个第三个分别表示入栈和出栈序列期望输出:判断出栈序列是否合法,输出合法,或者不合法。示例代码:#include <iostream>#include <fstrea...原创 2018-11-27 16:24:09 · 2310 阅读 · 0 评论 -
C++经典案例:处理重复快递数据
问题描述: 在快递数据中,快递会在不同的时间会刷新,这样对同一个快递编号会有多个时间信息与之对应,现在只要保留最近一次的时间信息。输入范例:2018/02/14-12:30|nike2018/10/14-12:30|nike2018/12/14-12:30|nike2018/04/14-12:30|nike2018/03/14-12:30|nike2018/09...原创 2018-11-26 20:43:57 · 833 阅读 · 0 评论
分享