C++常用的STL

来源:互联网 发布:lte网络结构优化 编辑:程序博客网 时间:2024/05/29 17:51

队列:

1、queue<>q 常用操作:

                (1) q.front() 取队首元素;

                (2)q.pop()删除队首元素;

                (3)q.empty()判断队列是否为空;

                (4)q.push()往队列插入一个元素,插到队尾

2、deque<>q(双向队列) 常用操作:

                (1)q.empty()判断对列是否为空;

                (2)q.front()得到队首元素;

                (3)q.back()得到队尾元素;

                (4)q.pop_back()删除队尾元素;

                (5)q.pop_front()删除队首元素;

                (6)q.push_back()往队尾中插入一个元素;

                (7)q.push_front()往队首中插入一个元素;

3、priority_queue<>q (优先队列)常用操作:

                 (1)q.top()取队首元素;

                 (2)q.pop()删除队首元素;

                 (3)q.push()往队列中插入一个元素(自动回按照优先级排序);

                 (4)q.empty()判断队列是否为空;

 (5)priority_queue<int, vector<int> ,greater<int> >Q;   (小顶堆)

  (6)priority_queue<int, vector<int> ,less<int> >Q;   (大顶堆)


集合:集合实际上是棵红黑树,里面的元素是按照优先级排好的;

1、set<>S(不会出现相同元素)常用操作:

                (1)S.insert()插入一个元素;

                (2)S.erase()删除一个元素;

                (3)S.count()判断某个元素在集合中的出现次数(1为出现,0为没有出现);

                (4)S.find()在集合中查找某个元素,返回迭代器指针(返回S.end()时,则未找到);

                (5)、S.clear()清空集合;

2、multiset<>S(多重集合,允许相同元素出现)常用操作与set<>S类似;


可变长数组vector<>G:

常用操作:

               (1)、G.push_back()插入一个元素;

               (2)、G.clear()清空G;

               (3)、G[i]得到第i个元素(i从0开始);

               (4)、G.size()可变长数组当前长度;

               (5)、sort(G.begin(),G.end(),less<int>()) 从小到大排序;

               (6)、sort(G.begin(),G.end(),greater<int>()) 从大到小排序;


栈:stack<>S常用操作:

               (1)、S.push()栈中压入一个元素;

               (2)、S.top()得到栈顶元素;

               (3)、S.pop()弹出栈顶元素;

               (4)、S.empty()栈是否为空;


map<>G常用的映射关系<int, int>,<string,int>,<char,int>;常用操作:

               (1)、G.clear()清空;

               (2)、G.count()返回某个关键字出现的次数;

map中的元素是按照关键字排好序的;


 string  str常见用法:

                (1)、str.length() / str.size()得到字符串长度;

                (2)、str.find()查找某段字符串或某个字母,返回第一次出现的下标,没有则返回-1;(参数可以是字符,也可以是字符串,还可以有三个参数,表示从某个特定的段中寻找)

                (3)、str.substr()得到字符串的一个子串,参数可以是一个整数pos,返回pos到结尾处的子串;也可以是两个整数,返回两整数之间的子串;



sort()按关键字排序;

bool cmp(int a, int b){
return a < b;

}

lower_bound(a,a+n,x)数组a到a+n中值大于等于x的第一个元素的值;

unique(a,a+n)剔除相邻之间重复的字符;(注意是相邻的)

next_permutation(a,a+n)求下一个排列;


与字符串有关的函数

strstr()函数用来检索子串在字符串中首次出现的位置;

其原型为: char *strstr( char *str, char * substr );


strrchr() 函数用于查找某字符在字符串中最后一次出现的位置;

其原型为:char * strrchr(const char *str, int c);


strchr() 用来查找某字符在字符串中首次出现的位置;

其原型为:char * strchr (const char *str, int c);


与字符处理处理有关的函数

int tolower(int );

int toupper(int);

int isalpha(int );

int iscntrl(int);

int isdigit(int );

isgraph(int );

int lslower(int );

int isalnum(int);

isprint(int );

ispunct(int); 是否是标点字符

int isspace(int);

int isupper(int); 

int isxdigit(int); 是否是16进制


c++ string操作

char数组装string

char s[];

string t = s;




















0 0
原创粉丝点击