C++标准模板库(stl)

map头文件

Map<int,int>mp; Map<char,int>mp; Map<string,int>mp; Map<vector ,int>mp;

1、判断大整数或者其他数据类型的存在问题。
2、Map会以键从小到大的顺序进行排序(红黑树)
3、Unordered_map,只实现映射,不按key排序

map容器中元素内容的访问

1、mp的访问通过下标进行访问。如:mp[‘c’]=20; mp[int a]=int b;
2、mp通过迭代的方式进行访问,map<int,int>::iterator it

常用函数:
find(key)         //返回键为key的迭代器
map<int,int>::iterator it=mp.find(key);
it->first, it->second;来进行访问

mp.erase(it)     //it为要删除元素的迭代器
mp.erase(key),
mp.erase(first,last)//first为起始迭代器,last为末尾迭代器的下一个[first,last)

size()          //获取map的映射对数
clear()        //清除所有元素

algorithm头文件

常用函数:
max(x,y)
min(x,y)
abs(x)
swap(x,y)
fill(a,a+5,-1)//填充数组类型的任意值
reverse(a,a+5)//将数组指针在[it1,it2)之间的元素翻转
sort(a,a+5,cmp)//对数组排序  
sort(vi.begin(),vi.end(),cmp)//对vector进行排序
//给出一个排列在全排列中的下一个序列
next_permutation(a,a+5) //对于数组
next_permutation( vi.begin(),vi.end() ) //对于数组

string头文件

注:string是C++新加入的类型;在C语言中,一般使用的是字符数组;
1、 要输入和输出整个字符串,只能使用cin和cout(除非使用str.c_str()进行转换);
1、 scanf和printf是对字符数组的输入输出。

字符串和字符数组的转换
//字符串转字符数组
	string name = "abcde";
	char buf[6];
	strcpy(buf , name.c_str());   //字符串转字符数组,使用strcpy
	cout << name.c_str() << endl; //name.c_str()将字符串转换成字符数组
	cout << buf << endl;

//字符数组转字符串
	char buf[]= "abcde";
	string name;
	name = buf;   //直接复制就可以
	cout << name << endl;
string中内容的访问

1、直接像字符数组那样去访问:str[i]
2、通过迭代器进行访问:string ::iterator it ; 内容则用*it表示。
3、string和vector一样,支持对迭代器加减数字,如:str.begin()+3;

常用函数
//直接拼接
string str1="abc",str2="def";
string str3=str1 + str2;    //+、+=号进行拼接

/*比较大小
两个string类型可以直接使用 == , != , < , <= , > , >=按照字典序比较大小
*/
if(str1<str2) printf("OK");

length()/size()  //返回长度
insert()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值