设为首页 加入收藏

TOP

C++STL笔记(四)
2017-10-13 10:21:46 】 浏览:6964
Tags:STL 笔记
abs()

max和min返回两个数x、y中的最大最小值。abs(x)中x必须为整数,浮点数用math头文件下的fabs()。

2)swap()

  swap(x,y)交换x和y的值。

3)reverse()

reverse(it,it2)可以将数组指针在[it1,it2)之间的元素或容器的迭代器[it1,it2)范围内的元素进行反转。

例如:

int a[10]={10,11,12,13,14,15};

reverse(a,a+4); //将a[0]~a[3} 4个元素反转。

13 12 11 10 14 15

string str =“abcdefghi”

reverse(str.begin()+2,str.begin()+6);

abfedcghi

 

4)next_permutation()

next_permutation()给出一个序列在全排列中的下一个序列。

例如:

n=3的全排列为

123 132 213 231 312 321

231的下一个序列为312。

int a[10]={1,2,3};

do{

cout<<a[0]<<a[1]<<a[2]<<” ”;

}while(next_permutation(a,a+3));

输出:123 132 213 231 312 321

5)fill()

fill()可以把数组或某容器的某一段区间赋为某个相同的值,与memset不同,这里的赋值可以是数组类型对应范围中的任意值。

int a[5];

fill(a,a+5,233);

6)sort()

sort(a,a+4); //默认递增排序

cmp函数

bool cmp(int a,int b){
return a>b; //从大到小排序 与priority_queue相反。

}

结构体

struct node{

int x;

int y;

}

 

bool cmp(node a,node b){

    if(a.x!=b.x)
return a.x>b.x; //按x从大到小排序 与priority_queue相反。

 else

return a.y<b.y; //若x相等,则按y从小到大排序。

}

STL中,只有vector,string,deque是可以用sort的,像set、map容器是用红黑树实现的,元素本身有序,不允许用sort排序。

 

7)lower_bound()/upper_bound()

  lower_bound(first,last,val)用来寻找在数组或容器中的[first,last)范围内第一个值大于等于val的元素的位置,如果是数组,返回该位置指针;如果是容器,返回该位置的迭代器。

upper_bound(first,last,val)用来寻找数组或容器的[first,last)范围第一个值大于val的元素的位置,如果是数组,返回该位置指针;如果是容器,返回该位置的迭代器。

如果数组或容器中没有寻找到该元素,则lower_bound()和upper_bound()返回可以插入该元素的位置的指针或迭代器。

 

首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Dom4J生成xml和包含CDATA问题 下一篇读书笔记 effective c++ Item 14 ..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目