首页 > STL大全 · 第一波
头像
大大大芒果
编辑于 2021-05-27 15:28
+ 关注

STL大全 · 第一波

STL是很方便的一个东西,接下来就是我对STL的总结。

1、容器

vector:
下标从0开始,与普通数组类似,二维vector书写方式为vector<vector<int> > 注意两个">"中间一定要有空格
如果需要二维或以上的vector,则需要一个特别操作,就是增加空行,例如一个有n行的二维vector:
vector<vector<int> > a;
for(int i=0;i<n;i++)
{
	a.push_back({});
    a[i].push_back(1);//可直接在每行加入元素,注意不要越界   
}
例如一个有n行m列的三维vector:
vector<vector<vector<int> > > a;
for(int i=0;i<n;i++)
{
	a.push_back({});
    for(int j=0;j<m;j++)
    {
        a[i].push_back({});
    }
}

set:
不重复容器
加入元素和vector不同,需要用s.insert(x)语句,x为想要加入的元素
访问元素也与vector不同,需要迭代器iterator,例如:
for(set<int>::iterator it=s.begin();it!=s.end();it++)
		cout<<*it<<" ";

queue:
队列
queue<type> QueueName;//



pair:
映射

map:
关联容器

2、sort

sort可以方便排序,和重载运算符一样。

sort(a+1,a+n+1)默认从小到大排序

sort(a+1,a+n+1,cmp)按cmp规定排序,一般用于结构体排序中
cmp是一个函数,返回类型为bool类型,以下为例子:
struct abc
{
	int x,y;
};
bool cmp(abc f1,abc f2)
{
	return f1.x<f2.x;//以结构体中的x变量为基准,从小到大排序
}

sort(a.begin(),a.end())vector、set的排序
如果想从第2个元素(即下标为1)开始排序,只需将语句改为sort(a.begin()+1,a.end()),其他的以此类推

3、string

+:插入字符

ascll码:把数字转换为字符,具体见https://baike.baidu.com/item/ASCII/309296?fr=aladdin

size:字符串长度(是.size()!!!

结束语:以上就是总结的全部内容,重要或要注意的点已为大家用粗体标出,希望对大家有所帮助,喜欢记得三连哟!

全部评论

(1) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

近期精华帖

热门推荐