码迷,mamicode.com
首页 > 编程语言 > 详细

c++ 常用标准库

时间:2018-06-25 23:00:42      阅读:365      评论:0      收藏:0      [点我收藏+]

标签:内容替换   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的值

如果是数组返回位置的指针, 如果是迭代器,返回位置的迭代器

 

c++ 常用标准库

标签:内容替换   bsp   等于   IV   之间   end   reverse   使用   str   

原文地址:https://www.cnblogs.com/mr-stn/p/9226446.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!