vector容器的大小(capacity)和存放数据的大小(size)

#include <iostream>
#include <vector>using namespace std;void printV(vector<int> &v)
{for (vector<int>::iterator it = v.begin(); it < v.end(); ++it){cout << *it << " ";}cout << endl;
}void test1()
{// 初始化向量并赋初值(尾插)vector<int> v1;for (int i = 0; i < 5; i++){v1.push_back(i * 2 + 1);}// 遍历printV(v1);if (v1.empty()){cout << "empty" << endl;}else{cout << "not empty" << endl;cout << "capacity: " << v1.capacity() << endl;cout << "size: " << v1.size() << endl;}// resize()函数重新指定容器的大小// 可以使用重载的版本指定变大size后需要向数组中填充的值v1.resize(10, 333);printV(v1);cout << "capacity: " << v1.capacity() << endl;cout << "size: " << v1.size() << endl;v1.resize(5);cout << "capacity: " << v1.capacity() << endl;cout << "size: " << v1.size() << endl;
}int main(int argc, char const *argv[])
{test1();return 0;
}

vector容器插入和删除元素

#include <iostream>
#include <vector>using namespace std;void printV(vector<int> &v)
{for (vector<int>::iterator it = v.begin(); it < v.end(); ++it){cout << *it << " ";}cout << endl;
}void test1()
{// 尾插法插入元素vector<int> v;for (int i = 0; i < 5; i++){v.push_back(i * 2 + 1);}// 遍历vectorprintV(v);// 1 3 5 7 9 // 尾部删除元素(尾删)v.pop_back();printV(v);// 1 3 5 7 // 指定元素插入, 第一个参数需要传入迭代器(指向pos位置)v.insert(v.begin(), 10);printV(v);// 10 1 3 5 7 // 指定元素插入, 传入迭代器, 插入count个elem元素v.insert(v.begin() + 1, 3, 9);printV(v);// 10 9 9 9 1 3 5 7 // 删除迭代器指向的元素v.erase(v.end() - 1);printV(v);// 10 9 9 9 1 3 5 // 删除区间(左闭右开区间)的元素v.erase(v.begin(), v.end() - 2);printV(v);// 3 5
}int main(int argc, char const *argv[])
{test1();return 0;
}

vector容器存储和读取元素

#include <iostream>
#include <vector>using namespace std;/*
C++ vector 数据存储和读取
*/void test1()
{// 尾插法插入元素vector<int> v;for (int i = 0; i < 5; i++){v.push_back(i * 2 + 1);}// 1. 利用重载的[] 遍历打印vector中每一元素for (int i = 0; i < v.size(); ++i){cout<<v[i]<<" ";}cout<<endl;// 1 3 5 7 9 // 2. 利用at()函数进行遍历(访问元素)for (int i = 0; i < v.size(); ++i){cout<<v.at(i)<<" ";}cout<<endl;// 1 3 5 7 9 // 3. 读取容器第一个元素和最后一个元素cout<<"front: "<<v.front()<<"  back: "<<v.back()<<endl;// front: 1  back: 9}int main(int argc, char const *argv[])
{test1();return 0;
}

C++ STL容器vector篇(三) vector容器大小和数组大小, 插入和删除元素, 存储和读取元素相关推荐

  1. 容器-Docker《三》容器管理

    容器-Docker<三>容器管理 下载镜像只是相当于将软件下载下来安装好,但是并不代表把它运行起来,类似于root@ubuntu2204:~# apt install nginx = do ...

  2. C++ STL容器vector篇(一) vector容器存放内置和自定义数据类型并遍历

    写在前面 存放内置数据类型 代码 存放自定义数据类型 代码 总结 写在前面 本文算是B站黑马C++课程STL-vector部分的一个总结, 包含自己的一些想法(都在代码里了). 存放内置数据类型 以i ...

  3. C++ STL容器vector篇(五) vector容器常用初始化操作总结(一维/二维)

    `vector`初始化方法 一维向量 二维向量 参考 vector初始化方法 一维向量 #include <iostream> #include <vector>using n ...

  4. C++ STL容器vector篇(四) vector容器交换, 预留空间

    交换数组 作用: 在数组的内存分配过大时采用swap()函数可以回收被过多分配的空间, 减少内存占用 #include <iostream> #include <vector> ...

  5. c语言实现容器,C语言三种容器:list vector和deque的区别

    在写C++程序的时候会发现STL是一个不错的东西,减少了代码量,使代码的复用率大大提高,减轻了程序猿的负担.还有一个就是容器,你会发现要是自己写一个链表.队列,或者是数组的时候,既要花时间还要操心怎么 ...

  6. C++ STL容器vector篇(二) vector容器的构造函数与赋值操作

    构造函数 构造函数的调用有四种方式: 默认构造函数(无参构造); 左闭右开区间元素拷贝给容器本身; 构造函数将n个elem拷贝给容器本身; 拷贝构造函数 代码如下: #include <iost ...

  7. (C++版)链表(三)——实现双向链表的创建、插入、删除等简单操作

    http://blog.csdn.net/fisherwan/article/details/25649073 链表(三)实现双向链表操作,代码如下: [cpp] view plain copy &l ...

  8. Word基础(三十五)题注的插入与删除

    题注:为您的图片或对象添加标签.添加题注后,您可以通过插入交叉引用在文档的任意位置引用对象. 在Word中,如何插入题注呢? 方法:以图片插入题注为例 鼠标点击需要插入题注的图片(或表格.公式等) 点 ...

  9. 学习笔记:C++初阶【C++入门、类和对象、C/C++内存管理、模板初阶、STL简介、string、vector、list、stack、queueu、模板进阶、C++的IO流】

    文章目录 前言 一.C++入门 1. C++关键字 2.命名空间 2.1 C语言缺点之一,没办法很好地解决命名冲突问题 2.2 C++提出了一个新语法--命名空间 2.2.1 命名空间概念 2.2.2 ...

最新文章

  1. 深入biztalk消息以及消息订阅发布路由机制(二)-消息订阅【转】
  2. WebLogic集群案例分析
  3. Nginx面试!mysql时间类型以及获取当前时间,干货满满
  4. scrapy中的request对象
  5. 正则表达式匹配C++代码实现
  6. 想做出让老板眼前一亮的可视化报告,这几个“心机”千万要有
  7. linux下安装php两种模式区别
  8. django mysql settings
  9. 模拟cmos集成电路设计_单级放大器中的噪声--CMOS模拟集成电路视频课程节选
  10. 使用CImage绘制半透明图片
  11. 初次接触 Lottie
  12. Oracle中on和where的区别
  13. hdu1284钱币兑换问题
  14. java runtime environment 55_jre7下载|Java Runtime Environment(Java运行环境JRE)JRE7 官方版_ - 极光下载站...
  15. 宽带猫、路由器、交换机的作用与区别是什么?
  16. js下拉列表二级联动
  17. mscorsvw.exe 关闭方法
  18. flask 蓝本(blueprint)
  19. 从0开始:win10系统下基于V831的目标检测
  20. 【Minecraft java edition 模组开发】(二):通过对岩浆怪和雪傀儡的源码分析,自己制作一个雪球怪

热门文章

  1. CodeFirst实体类中,为什么都把ICollectionx定义成virtual?
  2. delete操作字符串会报错吗?
  3. js基本函数和基本方法
  4. C# - Environment类,获取桌面的路径
  5. 个人收藏的flex特效网址【经典中的极品】
  6. 时富金融:八年左右后内地房价会下降
  7. 比那 施氏食狮史 还要强的文章
  8. mysql 连接池 数量_mysql合理配置连接池数量
  9. java单例模式7种_Java 单例模式的7种写法
  10. 我们在程序员节组织了一场游戏,竟还用Python去验证其公平性?