IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> c++学习之 关于vector的一些小知识 -> 正文阅读

[C++知识库]c++学习之 关于vector的一些小知识

1.头文件

#include <vector>

2.初始化

vector<int> test; //默认初始化?

vector<int> test2(test1); 或 vector<int> test2 = test1; //拷贝复制

vector<int> test = {1,2,3,4,5,6,7}; //直接赋值初始化

int a[] ={1,2,3,4,5};
vector<int> test(a,a+5);
//通过数组初始化

vector<int> test(7,3);//初始化test时在list中压入7个值为3的元素,若“3”的部分缺省,则会在test中压入7个0。

vector< vector<int> > test(i,vector<int>(j,val));? ?//定义一个 i * j 的值为val的int型二维向量

3.添加函数

int i = 1;

test.push_back(i);? ?//将1加入到vector中

test.insert(test.begin() + i,val);? ?//在test的第i个元素的位置插入值为val的元素。例如test 为1,2,3,4。i为1的情况下变为 1,val,2,3,4。

test.insert(test.begin() + i,k,val);? ?//在test的第i个元素位置插入k个值为val的元素。

test.insert(test.begin() + i,a + j,a + k);? ?//a为数组,在test的第i个位置插入a的第j到k的元素(不包括a + k)。例如v1.insert(v1.begin(),v2.begin(),v2.end());就是将v2加入到v1前。

4.删除函数

test.pop_back();? ?//删除容器中最后一个元素,该容器size会发生减1,但容量capacity不变。

test.erase(test.begin() + i);? ?//删除vector容器中第i(i = 0,1,2,...)位置上的元素。

test.erase(test.begin() + i , test.begin() + j);? ?//删除第 i 到 j - 1(i,i+1,i+2,...,j-2,j-1)的元素。? ?

test.remove(test.begin() + i,test.begin() + j,val);? ?//删除第i到j范围内等于val的值,但该方法只是把val移到末尾,并不是真的删除。不会改变容器的大小和容量。

test.clear();? ?//将容器清空,改变大小不改变容量。

5.遍历函数

test.at(i);? ?//得到i位置的数据,相当于test[i];

test.begin();? ?//得到数组头指针,指向第1个元素

test.end();? ?//返回向量尾指针,指向向量最后一个元素的下一个位置

test.front();? ?//返回第一个元素

test.back();? ?//返回最后一个元素

//得到数组第一个元素用test.begin()或者test.front()。得到最后一个元素则是test.end() - 1 或 test.back();

6.其他函数

test.size();? ?//使用数据的大小,即返回向量中元素的个数

test.capacity();? ?//容量,当前vector分配的大小

test.empty();? ?//判断是否为空,bool类型,如果为空返回true,否则false;

test.max_size();? ?//得到vector最大可以是多大;

test1.swap(test2);? ?//交换test1和test2;

7.其他用法

排序用法

sort(test.begin(),test.end());? ?//将vector整体进行快排,默认小到大。?

sort需要头文件? ?#include<algorithm>

如果需要降序,可重写规则

bool compare(int a,int b)
{
return a >?b; //降序排列,如果改为return a<b,则为升序
}

sort(test.begin(),test.end(),compare);? ?//降序

倒置用法

需要头文件? ?#include<algorithm>

reverse(test.begin(),test.end());? ?//对test进行倒置,比如1,2,3,4变为4,3,2,1。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-06-25 17:54:42  更:2022-06-25 17:55:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 15:36:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码