码迷,mamicode.com
首页 > 其他好文 > 详细

部分STL容器

时间:2021-04-19 15:53:19      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:多重   字符   字典   列表   用法   opera   iter   二维   返回   

string 容器

常见用法
string s1 = "Hello"
string s2("Hello")
string s3(s2)
string s4 = s3
getline(cin,s)// 从cin中读取一行给s
s.empty()// 空?true:false;
s.size()//返回字符串个数
+,=,==,!= 与其余数据结构类似
<,<=,>,>= //按照字典序比较
拓展
//查找子串
sq.find(s,0)//返回的是子串位置。yl第二个参数是查找的起始位置,如果找不到,就返回string::npos
if (sq.find("aa1", 0) == string::npos)
{
    cout << "找不到该子串!" << endl;
}
//append()与 replace()函数
str.append(args)    // 在尾部添加一个字符或一个字符串
str.replace(pos, args) 
//访问子串
str.find(args)  //查找args 第一次出现的位置
str.rfind(args)  //查找args最后一次出现的位置

vector

初始化
vector<int> v1;
vector<vector<int> >;  //注意空格。这里相当于二维数组int a[n][n]嵌套vector;
vector<int> v5 = { 1,2,3,4,5 }; //C11列表初始化
vector<string> v10(4); //默认初始化为空字符串
其他
v.empty()
v.size()
v.push_back()
<,<=,>,>=  字典序比较
v.erase()
v.clear()
v.insert()
v1.insert(iter,  a)        // 将元素a 插入到迭代器指定的位置的前面,返回新插入元素的迭代器(在c++11标准之前的版本,返回void)
v1.insert(iter, iter1, iter2)       //把迭代器[iterator1, iterator2]对应的元素插入到指定的位置的前面
v1.erase(iterator)     // 删除人人迭代器指定的元素,返回被删除元素之后的元素的迭代器。(效率很低,最好别用)

Set

multiset<int>st;//多重集
s.begin();//返回集合第一个元素
s.end();
s.clear();
s.empty();
s.insert();
s.erase();
s.size();
set<int>s;
set<int,greater<int > >s2;//带大于比较器的集合(默认为小于)
int a[5]={1,2,3,4,5};
set<int > s(a,a+5);//用数组初始化
set<int > s(setc.begin(),setc.end());//用集合初始化
set<int > sete(sete);//拷贝
s.erase(_x);
s.clear();
s.find(_x);//存在? 地址:s.end();
s.lower_bound(_x);//返回迭代器
s.upper_bound(_x);//返回迭代器
//自定义比较函数
struct cmp{
    bool operator () (const int &a,const int &b){
        return a>b;
    }
}
set<int,cmp>s;
//指针
set<int>::iterator it;
auto it;
next(it)//it 的下一个
prev(it)//it 的上一个

MAP

mp.clear()
auto it = it.begin()
it.first()//key
it.second()//value

部分STL容器

标签:多重   字符   字典   列表   用法   opera   iter   二维   返回   

原文地址:https://www.cnblogs.com/yesuweiYYYY/p/14670532.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!