(一)C++灵魂 -- stl标准模板库
引言
为了方便学习,我将单独介绍每一个容器,利于文章可读性。
一、vector 容器
二、set 容器
三、stack 容器
四、queue 容器
五、map 容器
六、pair 容器
七、string容器(第一篇已介绍)
正文
vector(动态数组)
1、声明
vector<int> v;
2、初始化
v={1,3,5,6,7}; //静态初始化
for (int i = 0; i < n; i++) //动态初始化
{
int t;
cin >> t;
v.push_back(t);
}
3、常见函数
v.size(); //返回 vector 中元素的数量
v.empty(); //检查 vector 是否为空,返回 true 或 false
v.clear(); //清空所有元素
v.push_back(10); // 在 vector 的末尾添加一个元素 10
v.insert(v.begin() + 2, 30); // 在下标为 2 的位置插入元素 30
v.erase(v.begin() + 2); // 删除下标为 2 的位置的元素
v.erase(v.begin() + 1, v.begin() + 3); // 删除下标为 1 到下标为 3 间的元素(不包括 3 元素)
4、遍历 (两种方式)
动态数组for循环遍历
for(int i=0; i < v.size();i++){
cout<<v[i]<<endl;
}
动态数组迭代器遍历
认识新概念
迭代器iteratior
*定义:迭代器可以被视为一个指向容器中元素的指针,但它提供了一种更抽象和安全的方式来访问和操作容器中的元素。迭代器并不是直接的地址,而是一个对象,提供了访问容器元素的功能和操作。
*声明迭代器:声明一个迭代器变量,类型与要遍历的容器的迭代器类型相同。
*初始化迭代器:容器的 begin() 方法初始化迭代器
* v.begin() 指向容器的第一个元素。
*v.end() 是指向最后一个元素之后的位置,这个位置是一个无效的位置,主要用于标记 容器的结束。
示例
for (vector<int>::iterator iter = v.begin(); iter != v.end(); iter++)
{
cout << *iter << ends;
if (*iter == 3)
del = iter;
}
5、删除
vector<int>::iterator del = v.end();
迭代器遍历
for (vector<int>::iterator iter = v.begin(); iter != v.end(); iter++)
{
cout << *iter << ends;
if (*iter == 3)
del = iter;
}
if (del != v.end())
{
v.erase(del);
cout << "删除后的数据" << endl;
for (vector<int>::iterator iter = v.begin(); iter != v.end(); iter++)
{
cout << *iter << ends;
}
cout << endl;
}
else
{
cout << "没有找到3" << endl;
}
6、清空容器
v.clear();
if (v.empty())
{
cout << "clear success" << endl;
}
更多推荐

所有评论(0)