标签:内容替换 bsp 等于 IV 之间 end reverse 使用 str
vector:
在vc6中,如果要镶嵌使用vector, 如vector<vector<int> >, 后面的两个> 应该用,空格隔开, 否则被编译器认为是移位符
string::npos 的值为-1或者4294967295
string str;
str.find(str2) 返回str2第一次在str中出现的位置, 如果不存在则返回string::npos
str.find(str2, pos) 从str的pos号开始匹配,返回值和上面一样
str.replace(pos, len, str2) 从str的pos位开始,长度为len的内容替换为str2
str.replace(it, it2, str) 把迭代器[it, it2)范围的子串替换为石头人
queue
在调用front()或者pop()函数的时候,先判断queue是否为空, 否者导致错误
如果要基础类型的数据升序排列,可以这样声明 priority_queue<int, vector<int>, greater<int> >; 注意最后两个符号间的空格
如果要用自己的定义的类型就需要在结构体中定义"<"符号, 只需要定义这个符号, 否者会出错, 至于是升序排列,还是降序排列,看你自己重写的<是怎么样的了
但是这个和cmp优点不一样,这里返回a.x<b.x得到的是降序排列的而不是升序排列的, 即作用和排序中的cmp是相反的;
此外,当数据量的比较大的时候, 简易形式参数引用传递, 减少数据的复制
1 struct node{ 2 int x, y; 3 friend operator < (node a, node b){ 4 if(a.x!=b.x) return a.x<b.x; 5 return a.y<b.y; 6 } 7 };
浮点数取绝对值要用fabs(); 否则浮点数的小数部分会被截掉;
reverse(it1, it2) 颠倒[it1, it2)之间的内容, 好像stl中的类似的函数都是左闭又开的哈
lower_bound(first, last, key) 适用于递增序列, 在[first, last)返回第一个大于或者等于key的位置,
upper_bounder(first, last, key) 返回第一个大于key的值
如果是数组返回位置的指针, 如果是迭代器,返回位置的迭代器
标签:内容替换 bsp 等于 IV 之间 end reverse 使用 str
原文地址:https://www.cnblogs.com/mr-stn/p/9226446.html