C++ STL容器vector篇(三) vector容器大小和数组大小, 插入和删除元素, 存储和读取元素
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容器大小和数组大小, 插入和删除元素, 存储和读取元素相关推荐
- 容器-Docker《三》容器管理
容器-Docker<三>容器管理 下载镜像只是相当于将软件下载下来安装好,但是并不代表把它运行起来,类似于root@ubuntu2204:~# apt install nginx = do ...
- C++ STL容器vector篇(一) vector容器存放内置和自定义数据类型并遍历
写在前面 存放内置数据类型 代码 存放自定义数据类型 代码 总结 写在前面 本文算是B站黑马C++课程STL-vector部分的一个总结, 包含自己的一些想法(都在代码里了). 存放内置数据类型 以i ...
- C++ STL容器vector篇(五) vector容器常用初始化操作总结(一维/二维)
`vector`初始化方法 一维向量 二维向量 参考 vector初始化方法 一维向量 #include <iostream> #include <vector>using n ...
- C++ STL容器vector篇(四) vector容器交换, 预留空间
交换数组 作用: 在数组的内存分配过大时采用swap()函数可以回收被过多分配的空间, 减少内存占用 #include <iostream> #include <vector> ...
- c语言实现容器,C语言三种容器:list vector和deque的区别
在写C++程序的时候会发现STL是一个不错的东西,减少了代码量,使代码的复用率大大提高,减轻了程序猿的负担.还有一个就是容器,你会发现要是自己写一个链表.队列,或者是数组的时候,既要花时间还要操心怎么 ...
- C++ STL容器vector篇(二) vector容器的构造函数与赋值操作
构造函数 构造函数的调用有四种方式: 默认构造函数(无参构造); 左闭右开区间元素拷贝给容器本身; 构造函数将n个elem拷贝给容器本身; 拷贝构造函数 代码如下: #include <iost ...
- (C++版)链表(三)——实现双向链表的创建、插入、删除等简单操作
http://blog.csdn.net/fisherwan/article/details/25649073 链表(三)实现双向链表操作,代码如下: [cpp] view plain copy &l ...
- Word基础(三十五)题注的插入与删除
题注:为您的图片或对象添加标签.添加题注后,您可以通过插入交叉引用在文档的任意位置引用对象. 在Word中,如何插入题注呢? 方法:以图片插入题注为例 鼠标点击需要插入题注的图片(或表格.公式等) 点 ...
- 学习笔记: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 ...
最新文章
- 深入biztalk消息以及消息订阅发布路由机制(二)-消息订阅【转】
- WebLogic集群案例分析
- Nginx面试!mysql时间类型以及获取当前时间,干货满满
- scrapy中的request对象
- 正则表达式匹配C++代码实现
- 想做出让老板眼前一亮的可视化报告,这几个“心机”千万要有
- linux下安装php两种模式区别
- django mysql settings
- 模拟cmos集成电路设计_单级放大器中的噪声--CMOS模拟集成电路视频课程节选
- 使用CImage绘制半透明图片
- 初次接触 Lottie
- Oracle中on和where的区别
- hdu1284钱币兑换问题
- java runtime environment 55_jre7下载|Java Runtime Environment(Java运行环境JRE)JRE7 官方版_ - 极光下载站...
- 宽带猫、路由器、交换机的作用与区别是什么?
- js下拉列表二级联动
- mscorsvw.exe 关闭方法
- flask 蓝本(blueprint)
- 从0开始:win10系统下基于V831的目标检测
- 【Minecraft java edition 模组开发】(二):通过对岩浆怪和雪傀儡的源码分析,自己制作一个雪球怪