【C++进阶】深入STL之vector:构建高效C++程序的基石
📝个人主页🌹:Eternity._
⏩收录专栏⏪:C++ “ 登神长阶 ”
🤡往期回顾🤡:模拟实现string
🌹🌹期待您的关注 🌹🌹
❀STL之vector
- 📒1.vector类的基本概念
- 📕2. vector类的常用操作
- 🌈vector类对象的常见构造
- 🌞vector类对象的容量操作
- 🌙vector类对象的增删查改
- 📜3. vector类的模拟实现
- 🍁vector的成员变量
- 🌸vector的构造函数
- 🌷vector的析构函数
- 🌻vector的拷贝构造函数
- 🌼vector的运算符重载
- 🍂vector容量相关函数
- 📖4. 总结
学习STL中的vector:开启C++容器之旅的前言
- 在C++的编程世界中,标准模板库(STL)无疑是每位开发者都需要熟练掌握的工具集。其中,vector作为STL中最常用的动态数组容器之一,以其灵活、高效和易用的特性,成为了众多C++程序员的首选。
vector容器允许我们存储任意数量的同类型元素,并且能够根据需要进行动态扩展。这种灵活性使得vector在处理大量数据时变得尤为高效,无论是在科学计算、图形处理、网络编程还是游戏开发等领域,我们都能看到vector的身影。
现在让我们一起踏上学习STL中vector的旅程吧!
📒1.vector类的基本概念
vector是C++标准模板库(STL)中的一个动态数组容器,它提供了对一段连续空间的动态管理功能。与普通的C++数组相比,vector具有许多优点,如可以动态调整大小、支持随机访问等。
vector类成员函数:
class string { private: iterator _start; iterator _finish; iterator _end_of_storage; };📕2. vector类的常用操作
🌈vector类对象的常见构造
构造函数声明 接口说明 vector() 无参构造 vector(size_type n, const value_type& val = value_type()) 构造并初始化n个val vector (const vector& x); 拷贝构造 vector (InputIterator first, InputIterator last); 使用迭代器进行初始化构造 int main() { vector v1; // 无参构造 vector v2(10, 0); // 构造并初始化n个val vector v3(v2); // 拷贝构造 vector v4(v2.begin(),v2.end()); // 使用迭代器进行初始化构造 return 0; }关于 vector iterator 的使用
iterator的使用 接口说明 begin +end 获取第一个数据位置的iterator/const_iterator, 获取最后一个数据的下一个位置的iterator/const_iterator rbegin + rend 获取最后一个数据位置的reverse_iterator,获取第一个数据前一个位置的reverse_iterator 其实vector的很多用法和string类似
🌞vector类对象的容量操作
容量空间 接口说明 size 获取数据个数 capacity 获取容量大小 empty 判断是否为空 resize 改变vector的size reserve 改变vector的capacity int main() { vector v(10, 0); cout vector cout cout cout 1,2,3,4,5,6,7,8,9}; auto pos = find(v.begin(),v.end(),6); v.erase(pos); //删除一个区间 v.erase(v.begin() + 1,v.end() - 1); 1,2,3,4,5,6,7,8,9}; auto pos = v.begin(); v.insert(pos,0); template public: // vector的迭代器是一个原生指针 typedef T* iterator; typedef const T* const_iterator; // 迭代器相关(迭代器主要就是找到头尾) iterator begin() { return _start; } iterator end() { return _finish; } const_iterator begin() const { return _start; } const_iterator end() const { return _finish; } private: // 成员变量 iterator _start; // 指向有效数据的头 iterator _finish; // 指向有效数据的尾 iterator _end_of_storage; // 指向最大空间的地方 }; } } reserve(n); // 开辟空间 for (size_t i = 0; i
- 在C++的编程世界中,标准模板库(STL)无疑是每位开发者都需要熟练掌握的工具集。其中,vector作为STL中最常用的动态数组容器之一,以其灵活、高效和易用的特性,成为了众多C++程序员的首选。
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!







