作者:mobiledu2502887287 | 来源:互联网 | 2024-09-28 21:14
vector:
在vc6中,如果要镶嵌使用vector, 如vector >, 后面的两个> 应该用,空格隔开, 否则被编译器认为是移位符
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, greater> >; 注意最后两个符号间的空格
如果要用自己的定义的类型就需要在结构体中定义"<"符号, 只需要定义这个符号, 否者会出错, 至于是升序排列,还是降序排列,看你自己重写的<是怎么样的了
但是这个和cmp优点不一样,这里返回a.x
此外,当数据量的比较大的时候, 简易形式参数引用传递, 减少数据的复制
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的值
如果是数组返回位置的指针, 如果是迭代器,返回位置的迭代器
c++ 常用标准库