【NOIp复习】STL

it2025-01-15  21

String

初始化

声明: string s1; 默认构造函数,s1为空串 string s2(s1); 将s2初始化为s1的一个副本 string s3("valuee"); 将s3初始化一个字符串面值副本 string s4(n,'c'); 将s4 初始化为字符'c'的n个副本 读入: cin>>s5; 读取有效字符到**遇到空格** getline(cin,s6); 读取字符到**遇到换行**,空格可读入,直到‘\n’结束('\n'不会被读入) getline(cin,s7,'a'); 一个直到‘a’结束,其中任何字符包括'\n'都能够读入

操作

s.empty() 判断是否为空 s.size() 或 s.length() 返回字符的个数 s[n] 返回位置为n的字符,**从0开始**计数 string支持+连接两个string或一个string与字符串,但两个字符串是不能用+连接的。(+操作符等效于s.append()) ==和!=也是可以用的

函数

s.insert(it,p); 把字符串p插入到it的位置 s.insert(p,s2,poe2,len); 在下标p**之前**插入s2下标从poe2开始长度为len的元素 s.insert(pos,cp,len); 下标pos**之前**插入cp数组的前len个元素 s.assign(n,t); 用n个t的副本替换s a.assign(s1,pos2,len);从s1的下标pos2开始连续替换len个。 s.replace (3,3,"good") ; 从第三个起连续三个替换为good s.substr(i,j) 截取s串中从i到j的子串 string::npos 字符串结束的pos s.erase(3) 删除第四个元素 s.erase (0,4) 删除第一到第五个元素 【string的下标是从0开始的】 s.find ( " cat " ) ; 超找第一个出现的字符串”cat“,返回其下标值,查不到返回string::npos,也可查找字符; s.append(args); 将args接到s的后面【相当于s+args】 s.compare ( " good " ) ; s与”good“比较相等返回0,比"good"大返回1,小则返回-1; reverse ( s.begin(), s.end () ); 反向排序函数,即字符串反转函数

map

#include <map> map<string,int> dict;//声明 dict.insert(pair(s1,n1));//插入元素 UDT_MAP_INT_CSTRING::iterator it=dict.find(key); //it->first是key,it->second是value dict.count(key);//统计个数 //map中元素按照key自然升序,可以用binary_search的东西

转载于:https://www.cnblogs.com/leotan0321/p/6081371.html

相关资源:NOIP复习资料(C++).pdf
最新回复(0)