C++ STL常用容器(一)

C++ STL(Standard Template Library)(一)

4/4/2019 4:50:15 PM

1 vector:变长数组

1.1 头文件和引用

开始时候引入

#include<vector>
using namespace std;

1.2 定义

typename 可以是 int double char node

vector<typename> name;

vector数组 其中 ArrayName[0]~ArrayName[size-1]都是vector容器

vector<typename> Arrayname[size]

1.3 访问元素

(1)下标访问

vi[index]

(2)迭代器

//vi.begin()取vi首地址
vector<typename>::iterator it = vi.begin();
typename i =*it;

1.4 函数实例

(1)push_pack(x)添加一个元素

(2)pop_back()删除最后一个

(3)size()

(4)clear()

(5)insert 向任意迭代器位置插入

//vi 初始为 1 2 3 4 5 
vi.insert(vi.begin()+2, -1)
//此时 1 2 -1 3 4 5

(6)erase()

//vi 初始化 1 2 3 4 5
vi.erase(vi.begin()+3)
//此时 1 2 3 5

earse(first,last) 删除[first,last)内元素

vi.erase(vi.begin()+1,vi.begin()+4)
//删除vi[1] vi[2] vi[3]

2 set:集合

内部自动排序,不含有重复元素

2.1 定义

set<typename> setname;

2.2 访问元素

不能通过下标访问 只能迭代器枚举

for(set<int>::iterator it=st.begin(); it!= st.end(); it++)

2.3 函数实例

(1)insert

插入后自动排序去重

(2)find

查找某个元素

(3)erase size clear

同vector

3 string

c语言中用char[]放字符串,STL中有string“# include”

3.1 定义

string str;
string str="abcd";

3.2 内容访问

(1)下标访问

string str = "abcd";
str[0];//a

(2)迭代器 同vector可对迭代器加减某个数字

3.3 函数

(1) += 可以拼接两个string
(2)< <= > >= 比较字典序
(3)length() size()
(4)insert()

//两种
//插入指定位置
insert(pos,string)
//待插入字符串被分割插入pos
insert(pos,it_first,it_end)

(5)erase

//删除单个元素
str.erase(it)
str.erase(str.begin()+1)

//删除一个区间内所有元素
str.(it_first,it_end)

//删除一个区间内所有元素
str.erase(pos,length)
//初始化abcdefg 删除3号开始的2个字符 de
str.erase(3,2)

(6)substr
substr(pos,len)
返回从pos位置开始、长度为len的子串

//初始化 abcdefgh
//返回 bcdef
str.substr(1,5)

(7)find返回string中第一次出现的位置

//匹配失败是返回值
string::npos
//初始化abcdefg 
//值为0
str.find("abc")
//值为string::npos
str.fing("xyz")

(8)repalce()

//位置 长度 替换为 str2
str.replace(pos,len,str2)
	
//初始化“abcdefg”
//返回ahellodefg bc替换为hello  
str.replace(1,2,"hello")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值