初识
为了建立数据结构和算法的一套标准,诞生了STL
STL(Standard Template Library 标准模版库)
STL从广义上分为:容器、算法、迭代器
容器和算法之间通过迭代器进行无缝连接
STL大体分为六大组件:
容器、算法、迭代器、仿函数、适配器、空间配置器
string
string是C++风格的字符串,而string本质上是一类
构造函数
int main() {
string s1;
const char* str= "Hello";
string s2(str);
string s3(s2);
string s4(10,'a');
cout << s1 << endl << s2 << endl << s3 << endl << s4;
}
赋值
int main() {
string name = "张三";
name.assign("李四");
name.assign("hello C++",5);
name.assign(name);
name.assign(10,'w');
cout << name << endl;
}
追加
int main() {
string name = "张三";
name +="中国";
name +='中';
name.append("hello world",6,5);
cout << name << endl;
}
查找和替换

字符串比较

字符串存储

插入和删除

子串

vector
不同之处在于数组是静态空间,而vector可以动态扩展
动态扩展:将元数据拷贝到新空间,释放原空间

vector的迭代器器支持随机访问
构造函数

赋值

容量大小

插入与删除

数据存取

元素互换

预留空间

遍历访问
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> v;
// 尾插数据
v.push_back(10);
v.push_back(20);
v.push_back(30);
v.push_back(40);
// 通过迭代器访问容器中的数据
vector<int>::iterator itBegin = v.begin();// 起始迭代器,指向第一个位置
vector<int>::iterator itEnd = v.end();// 结束迭代器,指向最后一个元素下一位置
for(itBegin = itBegin; itBegin != itEnd; itBegin++) {
cout << *itBegin << endl;
}
for_each(v.begin(), v.end(), [](int i){cout << i << endl;});
}
781

被折叠的 条评论
为什么被折叠?



