【C++进阶】深入STL之vector:构建高效C++程序的基石

2024-06-08 1027阅读

📝个人主页🌹:Eternity._

⏩收录专栏⏪:C++ “ 登神长阶 ”

🤡往期回顾🤡:模拟实现string

🌹🌹期待您的关注 🌹🌹

【C++进阶】深入STL之vector:构建高效C++程序的基石

【C++进阶】深入STL之vector:构建高效C++程序的基石

【C++进阶】深入STL之vector:构建高效C++程序的基石

❀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具有许多优点,如可以动态调整大小、支持随机访问等。

          【C++进阶】深入STL之vector:构建高效C++程序的基石


          vector类成员函数:

          class string
          {
          private:
          	iterator _start;
          	iterator _finish;
          	iterator _end_of_storage;
          };
          

          【C++进阶】深入STL之vector:构建高效C++程序的基石


          📕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

          【C++进阶】深入STL之vector:构建高效C++程序的基石

          【C++进阶】深入STL之vector:构建高效C++程序的基石

          其实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 
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]