当前位置: 首页 > news >正文

vector容器

以下是关于vector容器的总结
1、构造容器
2、容器赋值
3、获取容量capacity和大小size
4、插入和删除
5、数据存取
6、互换容器和预留空间

#include <iostream>
#include <vector>using namespace std;
// vector数据结构和数组非常相似,也称为单端数组
// vector和普通数组的区别:数组是静态空间,vector可以动态扩展
// vector容器的迭代器是支持 随机访问 的迭代器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);// 拷贝构造vector<int> v3(v2);printVector(v3);
}// vector的赋值
void test02()
{// 1 等号赋值vector<int> v1,v2; for(int i=0; i<10; i++){v1.push_back(i);}v2 = v1;printVector(v2);
}// vector容量和大小
void test03()
{vector<int> v1;bool flag = v1.empty();cout << "flag = " << flag << endl;for(int i=0; i<5; i++){v1.push_back(i);}flag = v1.empty();cout << "flag = " << flag << endl;int capacity = v1.capacity();cout << "capacity = " << capacity << endl;int size = v1.size();cout << "size = " << size << endl;// resize(size, num) 重新定义容器的大小,多余的位置用num来填充}// vector插入和删除
void test04()
{// 1 push_back(ele) & pop_back(ele)vector<int> v;for(int i = 0; i<10; i++){v.push_back(i);}// 2 insert(const_iterator pos, ele) 迭代器指向位置Pos插入元素elev.insert(v.begin()+2, 10);printVector(v);// 3.1 erase(const_iterator pos) 删除迭代器指向位置的元素v.erase(v.begin()+2);printVector(v);// 3.2 erase(const_iterator start, const_iterator end) 删除迭代器从strat到end之间的元素v.erase(v.begin()+3, v.begin()+6);printVector(v);// 4 clear()v.clear();printVector(v);}// vector数据存取
void test05()
{vector<int> v;for(int i = 0; i<10; i++){v.push_back(i);}// 1 v.at(int idx)cout << "v[2] = " << v.at(2) << endl;;// 2 operator[] -> v[2]cout << "v[2] = " << v[2] << endl;// 3 front() 返回容器中的第一个数据cout << "v[0] = " << v.front() << endl;// 4 back() 返回容器中的最后一个数据cout << "v[9] = " << v.back() << endl;
}// vector互换容器 and 预留空间
void test06()
{// 实现两个容器内元素进行交换// 函数原型:swap(vec);vector<int> v1,v2;for(int i = 0; i<10; i++){v1.push_back(i);}for(int i=0; i<5; i++){v2.push_back(i+2);}v1.swap(v2);printVector(v1);printVector(v2);// reserve(int len); // 容器预留len个元素长度,预留位置不初始化,元素不可访问// 减少动态扩展内存的次数
}int main(int argc, char **argv)
{// 1 构造cout << "1 构造" << endl;test01();cout << endl;// 2 赋值cout << "2 赋值" << endl;test02();cout << endl;// 3 容量和大小cout << "3 容量和大小" << endl;test03();cout << endl;// 4 插入和删除cout << "4 插入和删除" << endl;test04();cout << endl;// 5 数据存取cout << "5 数据存取" << endl;test05();cout << endl;// 6 互换容器cout << "6 互换容器" << endl;test06();cout << endl;return 0;
}

在这里插入图片描述

http://www.lryc.cn/news/387451.html

相关文章:

  • 二进制常用知识整理<java>
  • 基于Docker的淘客返利平台部署
  • 【涵子来信科技潮流】——WWDC24回顾与暑假更新说明
  • 重温react-08(createContext使用方式)
  • LInux后台运行程序
  • DEBOPIE框架:打造最好的ChatGPT交易机器人
  • C++ Thead多线程 condition_variable 与其使用场景---C++11多线程快速学习
  • 什么是前端开发?
  • 大数据面试题之Spark(1)
  • Spring Boot 和 Spring Framework 的区别是什么?
  • JVM原理(四):JVM垃圾收集算法与分代收集理论
  • 1961 Springboot自习室预约系统idea开发mysql数据库web结构java编程计算机网页源码maven项目
  • 前端面试题(12)答案版
  • SpringMVC 域对象共享数据
  • 每天五分钟深度学习框架pytorch:tensor向量之间常用的运算操作
  • 【数据结构】(C语言):栈
  • c++类成员指针用法
  • [240625] Continue -- 开源 Copilot | Web-Check 网站分析工具 | Story of EOL
  • 【Mac】Auto Mouse Click for Mac(高效、稳定的鼠标连点器软件)软件介绍
  • javaSE知识点整理总结(下)、MySQL数据库
  • Perl入门学习
  • 2024年7月计划(ue5肉鸽视频完成)
  • 恢复策略(上)-撤销事务(UNDO)、重做事务(REDO)
  • 【鸿蒙学习笔记】位置设置
  • 41.HOOK引擎设计原理
  • STM32启动流程 和 map文件的作用
  • 深度解析华为仓颉语言
  • Android简介-历史、API等级与体系结构
  • SpringBoot:使用Spring Batch实现批处理任务
  • 用JQueryUI库在.net MVC中配置datepicker(时间日期控件)