C++ STL(三)vector容器
2022/2/16 22:42:54
本文主要是介绍C++ STL(三)vector容器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
5. vector容器
- vector容器与数组非常相似,也称为单端数组。不同之处在于,数组是静态空间,而vector可以动态拓展。其中动态拓展并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝至新空间,释放原空间。
- vector容器的迭代器是支持随机访问的迭代器。
vector的构造函数
#include <iostream> #include <string> #include <vector> using namespace std; void printVector(vector<int> &v) { for (vector<int>::iterator it = v.begin(); it != v.end(); it++) { cout << *it << " "; } cout << endl; } // vector容器的构造 void test01() { vector<int> v1; // 默认无参构造 for (int i = 0; i < 10; i++) { v1.push_back(i); } printVector(v1); // 通过区间的方式进行构造 vector<int> v2(v1.begin(), v1.end()); printVector(v2); // n个elem进行构造 vector<int> v3(10, 2); //10个2 printVector(v3); // 拷贝构造 vector<int> v4(v3); printVector(v4); } int main() { test01(); return 0; }
vector赋值操作
#include <iostream> #include <string> #include <vector> using namespace std; void printVector(vector<int>& v) { for (vector<int>::iterator it = v.begin(); it != v.end(); it++) { cout << *it << " "; } cout << endl; } // vector的赋值 void test01() { vector<int>v1; for (int i = 0; i < 10; i++) { v1.push_back(i); } printVector(v1); // 用等号赋值 vector<int> v2; v2 = v1; printVector(v2);//把v1所有的元素赋值给v2 // assign vector<int> v3; v3.assign(v1.begin(), v1.end()); printVector(v3); //n个elem的方式进行赋值 vector<int> v4; v4.assign(20, 6); printVector(v4); } int main() { test01(); return 0; }
vector的容量和大小操作
void test01() { vector<int>v1; for (int i = 0; i < 10; i++) { v1.push_back(i); } printVector(v1); //判断容器是否为空 if (v1.empty()) // 为真 代表容器为空 { cout << "容器为空"; } else { cout << "容器不为空" << endl; cout << "v1的容量为:" << v1.capacity() << endl; cout << "v1的大小为:" << v1.size() << endl; } // 重新指定大小 v1.resize(15); //如果重新指定的比原来的长了,默认用0填充新的位置 cout << "v1的大小为:" << v1.size() << endl; printVector(v1); v1.resize(20, 666); //重新指定大小,用666填充新的位置 printVector(v1); v1.resize(5);// 重新指定的大小比原来的短,则删除超出的部分 printVector(v1); }
vector的插入和删除
void test01() { vector<int>v1; for (int i = 0; i < 10; i++) { // 尾插法插入数据 v1.push_back(i); } printVector(v1); // 尾删删除数据 v1.pop_back(); printVector(v1); // 插入 第一个参数是迭代器 v1.insert(v1.begin(), 100); printVector(v1); v1.insert(v1.begin(),2,666); //插两个666在迭代器前 printVector(v1); //删除 v1.erase(v1.begin()); printVector(v1); // 删除指定区间 v1.erase(v1.begin(),v1.begin()+5); printVector(v1); //清空容器 v1.clear(); printVector(v1); }
vector数据存取
void test01() { vector<int>v1; for (int i = 0; i < 10; i++) { // 尾插法插入数据 v1.push_back(i); } for (int i = 0; i < v1.size(); i++) { // 利用[]来访问容器中的元素 cout << v1[i] << " "; } cout << endl; for (int i = 0; i < v1.size(); i++) { // 利用at()来访问容器中的元素 cout << v1.at(i) << " "; } cout << endl; // 获取第一个元素 cout << "第一个元素为" << v1.front() << endl; // 获取最后一个元素 cout << "最后一个元素为" << v1.back() << endl; }
这篇关于C++ STL(三)vector容器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-30uniAPP 实现全屏左右滚动滚动的效果-icode9专业技术文章分享
- 2024-06-30如何在本地使用授权或插件-icode9专业技术文章分享
- 2024-06-30伪静态规则配置方法汇总-icode9专业技术文章分享
- 2024-06-29易优CMS安装常见问题汇总-icode9专业技术文章分享
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享
- 2024-06-28忘记eyoucms后台密码怎么办?-icode9专业技术文章分享
- 2024-06-26终极指南:Scrum中如何设置需求优先级
- 2024-06-26AI大模型企业应用实战(25)-为Langchain Agent添加记忆功能
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding