Effective STL/c++
兜率工
XJTU 硕士研究生在读
展开
-
STL中容器的删除操作。
第九条 1.删除c容器中所有值为1963的元素。//删除c容器中所有值为1963的元素。//当c是vector,string,deque时,erase-remove习惯用法是删除特定值元素的最好办法c.erase(remove(c.begin,c.end,1963),c.end);//对于listc.remove(1963);//对于关联容器c.erase(1963);...原创 2018-03-18 17:41:46 · 355 阅读 · 0 评论 -
用vector容器给map排序
//题目描述:找寻一堆数据中哪个数据出现的最多;//第一种思路:用c语言直接存放数组;//第二种思路:用map存放,存放到vector中 //vector容器 中关于map对象的排序; struct cmpByValue { bool operator()(const PAIR& left, const PAIR& right) { ...原创 2018-01-29 18:36:51 · 946 阅读 · 4 评论 -
用map对数组进行标记
#include<map>using namespace std;const int N=10;struct node{ int f[N]; bool operator < (const node& p) const { for(int i=0;i<N;i++){ if(f[i]==p.f[i])...原创 2018-07-17 15:32:41 · 720 阅读 · 0 评论 -
初识STL
1.现有库函数如何用2.如何实现库函数,A.分类,一. 最主要的是容器 1.map 2.set 3.vector 4.queue 5.list对象,类,STL均为类。类是抽象的,对象是具体的抽象最重要。类定义变量,变量即为对象。工作方式:通信。对象程序。C:顺序程序。类:1.方法2.变量->状态。关键是一堆方法。原创 2018-01-29 15:41:13 · 137 阅读 · 0 评论 -
cin,cin.getline,getline,gets()
一.cin>>用法1:接收一个数字或字符int a,b; cin>>a>>b;用法2:接受一个字符串,遇到"空格","TAB" , "回车"就结束了char s[20]; cin>>s; 注意: #include<cstdio>#include<iostream>原创 2018-02-10 13:34:39 · 327 阅读 · 0 评论 -
加速cin,cout输入输出
std::ios::sync_with_stdio(false); 百 度了一下,原来而cin,cout之所以效率低,是因为先把要输出的东西存入缓冲区,再输出,导致效率降低,而这段语句可以来打消iostream的输入 输出缓存,可以节省许多时间,使效率与scanf与printf相差无几,还有应注意的是scanf与printf使用的头文件应是stdio.h而不是 iostream。 sync_w...原创 2018-03-16 23:50:33 · 2252 阅读 · 0 评论 -
cin.getline的用法:
getline 是一个函数,它可以接受用户的输入的字符,直到已达指定个数,或者用户输入了特定的字符。它的函数声明形式(函数原型)如下: istream&amp; getline(char line[], int size, char endchar = ‘\n’); 不用管它的返回类型,来关心它的三个参数: char line[]: 就是一个字符数组,用户输入的内容将存入在该数组内。...原创 2018-03-17 00:46:23 · 1869 阅读 · 0 评论 -
c++位运算函数之 __builtin_
1.__builtin_popcount(unsigned int n) 该函数时判断n的二进制中有多少个1int n = 15; //二进制为1111cout&lt;&lt;__builtin_popcount(n)&lt;&lt;endl;//输出42.__builtin_parity(unsigned int n) 该函数是判断n的二进制中1的个数的奇偶性int n = 1...原创 2018-05-07 13:38:32 · 7737 阅读 · 0 评论 -
c++加速输入输出
ios::sync_with_stdio(false);cin.tie(0);原创 2018-04-18 16:23:28 · 1079 阅读 · 0 评论 -
STL之rope容器
专用于块状链表计算的rope容器 库中模板计算基本和string一样简单 string的基本用法 但内部是用平衡树实现,各种操作的复杂度都是O(log n),十分方便高效 需要增加的预处理指令: #include&lt;ext/rope&gt; using namespace __gnu_cxx; rope的库函数提供的基本操作:rope list;list.insert(...原创 2018-05-24 14:21:09 · 2243 阅读 · 0 评论 -
优先队列
优先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序。每次的push和pop操作,队列都会动态的调整,以达到我们预期的方式来存储。priority_queue&amp;amp;amp;amp;amp;lt;Type, Container&amp;amp;amp;amp;amp;lt;Type&amp;amp;amp;amp;amp;gt;, Functional&amp;amp;amp;am原创 2018-04-18 14:27:37 · 998 阅读 · 0 评论 -
STL之heap用法
STL中并没有把heap作为一种容器组件,heap的实现亦需要更低一层的容器组件(诸如list,array,vector)作为其底层机制。Heap是一个类属算法,包含在algorithm头文件中。虽然STL中关于heap默认调整成的是大顶堆,但却可以让用户利用自定义的compare_fuction函数实现大顶堆或小顶堆。heap的低层机制vector本身就是一个类模板,heap基于vector便实...原创 2018-05-24 13:40:58 · 453 阅读 · 0 评论 -
string 的一些字符串操作函数
1.find查找函数 函数原型:size_t find ( const string&amp;amp;amp;amp;amp;amp;amp; str, size_t pos = 0 ) const; size_t find ( const char* s, size_t pos, size_t n ) const; size_t find ( const char* s, size_t pos = 0 ) const; size_...原创 2018-05-08 15:46:28 · 5915 阅读 · 2 评论 -
equal_range
first跟lower_bound相等,secound跟upper_bound相等#include<iostream>#include<cstdio>#include<string>#include<cstdlib>#include<cctype>#include<string.h>#include<ma...原创 2018-04-03 20:21:01 · 197 阅读 · 0 评论 -
STL map的高效插入和更新
#include<iostream>#include<cstdio>#include<string>#include<cstdlib>#include<cctype>#include<string.h>#include<map>using namespace std;template&l原创 2018-04-03 17:27:04 · 2063 阅读 · 0 评论 -
set<string>不区分大小写
#include<iostream>#include<cstdio>#include<string>#include<cstdlib>#include<cctype>#include <string.h>#include<set>using namespace std;int ciStringC原创 2018-04-03 16:05:06 · 3587 阅读 · 1 评论 -
第一条:慎重选择容器类型
1.标准STL序列容器:vector,string,deque,list; 2.标准STL关联容器:set,multiset,map,multimap; 3.非标准序列容器:slist,rope;slist是一个单向链表,rope本质上是一个“重型”string 4.非标准的关联容器:hash_set,hash_multist,hash_map,hash_multimap; 5.vecto...原创 2018-03-14 00:41:18 · 228 阅读 · 0 评论 -
STL(总结)
STL手册 http://www.cplusplus.com/reference/stl/ 1.set中常用的方法 begin() ,返回set容器的第一个元素end() ,返回set容器的最后一个元素clear() ,删除set容器中的所有的元素empty() ,判断set容器是否为空max_size() ,...原创 2018-01-29 19:41:36 · 322 阅读 · 0 评论