C++容器
程序员文章站
2022-06-16 22:50:01
...
采用C++语言刷leetcode时,发现各种容器不会用,题目还没开始刷就凉了。。。特写本文巩固总结各种容器的使用。
一、String——字符串容器
构造方法
构造空字符串 String()
通过cstring构造 String("hello,world")
通过cstring的子串构造 String("hello,world", 3, 8)
修改
附加 +=
或者str.append()
添加字符 str.push_back(char ch)
赋值 str = str2
插入string str.insert(int pos, str2)
删除最后的字符 str.pop_back()
二、vector——向量容器
属性
属性 | 解释 |
---|---|
size() | 大小 |
empty() | 返回0或1 |
创建vector
方式 | 备注 |
---|---|
vector<int> a(10); | 指定长度 |
vector<int> a(10, 1); | 指定长度和初始值 |
vector<int> a(b.begin(), b.end()); vector<int> a(b); |
用其余向量 |
vector<int> a(arr, arr + sizeof(arr)/sizeof(int)); | 用一个整型数组 |
访问
1. 遍历
用下标
for(unsigned i=0; i<e.size();i++){
cout<<e[i]<<" ";
}
用迭代器
for(vector<int>::iterator it = c.begin(); it!=c.end(); ++it){
cout<<*it<<endl;
}
2. 获取
a[index]; //超出index range取出乱值
a.at(index); //超出index range报错
a.front();
a.back();
修改
- 尾部插入或删除值
a.push_back();
a.pop_back();
- 指定位置插入
//insert(start_position, value)
a.insert(a.begin(), 5);
//insert(start_position, amount, value)
a.insert(a.begin(), 3, 5);
//insert(start_position, vec_start_position, vec_end_position)
a.insert(a.begin(), b.begin(), b.begin()+3);