c++ 中vector 常见用法
目录
- 1、c++ 中 vector
- 2、初始化
- 3、常用函数
1、c++ 中 vector
vector
有两个参数,一个是size
,表示当前vector
容器内存储的元素个数,一个是capacity
,表示当前vector在内存中申请的这片区域所能容纳的元素个数。
capacity
会随着你的使用vector
内置函数而动态变化.
通常capacity
会比size大,如果往vector
中push_back
数据,这样就不用重新申请内存和拷贝元素到新内存区域了,便于节省时间。
vector
之间可以之间赋值或者作为函数的返回值
2、初始化
与数组的初始化一样
vector<int> a = {11,2,3};
3、常用函数
#include <vector> #include <iostream> using namespace std; int main() { vector<int> vec; }
多维的 vector
用法与多维的 string
一样。
在尾部添加元素:push_back
(要添加的元素)
vec.push_back(3);
说明:把数字3加到vec的末尾。
注意:vector
类型的变量要想增加元素,只能用push_back()
函数
for(int i = 0;i<vec.size();i++) vec.push_back(i);
说明:将vec中的元素依次赋值为0 1 2 3 4 .......
在尾部删除元素:pop_back(空)
vec.pop_back();
说明:删除容器内的最后一个元素,容器的size
减1。
之后仍然能通过push_back()
来在尾部增加元素
因为pop_back()
不会减小capacity
.
读取长度:size(空)
int len = vec.size();
说明:将vec
的长度(也就是其中的元素的个数)赋给len
改变大小: resize
(改变后的长度,(用哪个元素补全))
假设此时vec
的长度为4
vec.resize(2); // 将vec的长度变为2,(注意vec是从0开始编号,因此此时vec的最后一个元素为vec[1]),vec[2:n]均被舍弃 vec.resize(6,3); // 将vec的长度变为6,此时vec[4:5] 均被赋值为3
且,resize
函数只能对vec
的size
进行减小,而不能使得capacity
减小
清空:clear()
vec.clear();
说明:把size
设置成0,capacity
不变。
检测是否为空 :empty()
if(vec.empty()) cout<< "empty"; else cout <<"full";
说明:对于 empty()
函数,如果为空,则返回 true
,如果非空,则返回 false
到此这篇关于c++ 中vector 常见用法的文章就介绍到这了,更多相关c++ 中的vector 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
一篇文章带你了解C++(STL基础、Vector)
目录 STL基本概念 STL六大组件 STL中容器.算法.迭代器 容器算法迭代器初识 Vector 容器 Vector 三大遍历算法 Vector 存放其他数据类型 Vector 容器嵌套 总结 STL基本概念 STL(Standard Template Library,标准模板库) STL 从广义上分为: 容器(container) 算法(algorithm) 迭代器(iterator) 容器和算法之间通过迭代器进行无缝连接. STL 几乎所有的代码都采用了模板类或者模板函数 STL六大组件
-
C++ vector数组用法及解析
目录 一.什么是vector数组 二.vector的基本操作 vector数组的初始化 向vector中插入元素 删除元素 遍历数组 利用vector创建动态二维数组 一.什么是vector数组 vector是向量类型 vector数组是可以存放任意数据类型的动态数组 和普通数组类似,可以通过下标对数组中的元素进行引用 二.vector的基本操作 使用vector数组要在头文件中加 #include<vector> vector数组的声明 vector<int> vec;//声明一
-
C++入门之vector使用详解
目录 前言 创建对象 迭代器 数据插入 数据删除 容量操作 总结 前言 兜兜转转,我们来到了C++的vector章节,今天就讲讲怎么使用vector吧. vector的本质就是一个线性的顺序表,只不过在C++中被弄成了模板,以达到泛型编程目的.而使用的方面大概包括创建对象,数据插入,数据删除,数据访问,迭代器以及容量修改等方面 创建对象 在C++中,官方文档所给的创建对象方法有4-6种,博主这里便介绍其中最常用的4种,同时博主为了大家先能够简单使用,会省去一些与源文档不一样的地方. 直接创建,即
-
C++模板以及实现vector实例详解
目录 函数模板 类模板 Vector实现 简单的类模板实现代码及测试: win msvc编译器的实现: 容器的空间配置器 运算符重载与迭代器实现 最终vector的实现代码 总结 函数模板 函数模板:是不进行编译的,因为类型还不知道 模板的实例化:函数调用点进行实例化 模板函数:才是要被编译器所编译的 模板类型参数:typyname/class 模板非类型参数:模板非类型形参的详细阐述 模板的实参推演:可以根据用户传入的实参的类型,来推导出模板类型参数的具体 模板的特例化(专用化)的实例化 模板
-
C++中vector的模拟实现实例详解
目录 vector接口总览 默认成员函数 构造函数 拷贝构造 赋值重载 析构函数 迭代器相关函数 begin和end 容量相关函数 size和capacity reserve resize empty 修改容器相关函数 push_back pop_back insert erase swap 访问容器相关函数 operator[ ] 总结 vector接口总览 namespace nzb { //模拟实现vector template<class T> class vector { publi
-
C++入门之vector的底层实现详解
目录 前言 定义初始结构 声明构造函数 容量有关操作 获取有效数据大小size() 获取数据容量capacity() 增加容量reserve() 重置大小resize() 迭代器 数据操作 尾插push_back() 尾删pop_back() 某一位置插入 insert() 某一位置删除 erase() 拷贝构造 []访问操作 =赋值操作 特别注意!!! 总结 前言 上一小节,我们讲解了vector的使用,也大概了解了其创建对象,增删改查数据等操作.那么今天,我们就来大致实现一下吧. 定义初始结
-
C++ pair方法与vector方法案例详解
一,pair方法 类模板:template <class T1, class T2> struct pair 参数:T1是第一个值的数据类型,T2是第二个值的数据类型. 功能:pair将一对值组合成一个值,这一对值可以具有不同的数据类型(T1和T2),两个值可以分别用pair的两个公有函数first和second访问. 具体用法: 访问两个元素(通过first和second): pair<int, double> p1; //使用默认构造函数 p1.first = 1; p1.se
-
C++中vector迭代器失效问题详解
目录 问题: (1)删除vector中所有的偶数 (2)vector容器插入元素问题 迭代器失效原因 解决: 总结 问题: (1)删除vector中所有的偶数 #include <iostream> #include <vector> using namespace std; int main() { vector<int> vec; for (int i = 0; i < 10; ++i) { vec.push_back(i); } //把vec容器中的所有偶数
-
c++ 中vector 常见用法
目录 1.c++ 中 vector 2.初始化 3.常用函数 1.c++ 中 vector vector有两个参数,一个是size,表示当前vector容器内存储的元素个数,一个是capacity,表示当前vector在内存中申请的这片区域所能容纳的元素个数. capacity会随着你的使用vector内置函数而动态变化. 通常capacity会比size大,如果往vector中push_back数据,这样就不用重新申请内存和拷贝元素到新内存区域了,便于节省时间. vector 之间可以之间赋值
-
带你了解C++中vector的用法
目录 一,什么是vector 二,容器特性 1,顺序序列 2,动态数组 3,能够感知内存分配器 三,常用基本函数实现 四,基本用法 1,头文件 2,创建和使用 3,算法 五,vector占用内存空间问题 1,vector内存自增长 2,vector内存释放 六,疑问解答 1,vector与数组的区别 2,C++11关于vector的新增特性有: 总结 一,什么是vector vector(向量)是一个封装了动态大小数组的顺序容器.能够存放各种类型的对象(注:一个容器中所有对象必须是同一种类型的)
-
C++中vector的用法实例解析
本文实例展示了C++中的vector用法,分享给大家供大家参考.具体如下: 一.概述 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector是一个容器,它能够存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,可以动态改变大小. 例如: // c语言风格 int myHouse[100] ; // 采用vector vector<int> vecMyHouse(100); 当如上定义后,vecMyHouse
-
Mysql中正则表达式Regexp常见用法
Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where content regexp '车友俱乐部' # 此时的regexp与like的以下用法是等同的 select * from club_content where content like '%车友俱乐部%' 模糊匹配,以特定字符串开头 # 查找content字段中以"车友"开头的记录 s
-
Mysql中正则表达式Regexp常见用法及说明
目录 Mysql中Regexp常见用法 Regexp关键字及正则表达式的常用通配符 总结 Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where content regexp '车友俱乐部' # 此时的regexp与like的以下用法是等同的 select * from club_content where content like '%车友俱乐部%' 模糊匹配,
-
关于vector的常见用法详解
目录 vector的定义 vector容器内元素的访问 一.通过下标访问 二.通过迭代器访问 vector常用函数 vector的常见用途 vector翻译为向量,但是这里使用“变长数组”的叫法更容易理解,也即“长度根据需要而自动改变的数组”.在考试题中,有时会碰到只用普通数组会超内存的情况,这种情况使用vector会让问题的解决便捷许多.另外, vector还可以用来以邻接表的方式储存图,这对无法使用邻接矩阵的题目(结点数太多).又害怕使用指针实现邻接表的读者是非常友好的写法也非常简洁. 需要
-
C++中vector容器的用法
在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<int> vec; (3)尾部插入数字:vec.push_back(a); (4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的. (5)使用迭代器访问元素. vector<int>::iterator it; for(it=vec.begi
-
Android编程开发中ListView的常见用法分析
本文实例讲述了Android编程开发中ListView的常见用法.分享给大家供大家参考,具体如下: 一.ListView的使用步骤 ListView的使用通常有以下三个要素: (1)ListView中每个条目的布局; (2)填充进入ListView中的内容; (3)将内容与页面进行整合的Adapter. 因此,使用ListView也通常有以下三个步骤: (1)创建ListView条目的布局文件(或使用Android SDK提供的布局); (2)创建填充进入ListView中的内容,如字符串.图片
-
C++中stack、queue、vector的用法详解
一.栈(stack) 引入头文件 #include<stack> 常用的方法 empty() 堆栈为空则返回真 pop() 移除栈顶元素 push() 在栈顶增加元素 size() 返回栈中元素数目 top() 返回栈顶元素 3.实例代码 #include<iostream> #include<stack> using namespace std; int main(){ //创建栈 s stack<int> s; //将元素压入栈 for(int i=0;
-
Python2/3中urllib库的一些常见用法
什么是Urllib库 Urllib是Python提供的一个用于操作URL的模块,我们爬取网页的时候,经常需要用到这个库. 升级合并后,模块中的包的位置变化的地方较多. urllib库对照速查表 Python2.X Python3.X urllib urllib.request, urllib.error, urllib.parse urllib2 urllib.request, urllib.error urllib2.urlopen urllib.request.urlopen urllib.
随机推荐
- 我的论坛源代码(八)
- 探讨:如何在NDK中呼叫Java的class
- Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
- iOS10 权限崩溃问题详解及解决方案
- Python实现简单拆分PDF文件的方法
- python数据结构之二叉树的建立实例
- JavaScript面向对象之私有静态变量实例分析
- xmlHTTP实例
- JavaScript的parseInt 取整使用
- PHP版QQ互联OAuth示例代码分享
- asp加密解密函数decrypt
- javascript增加干扰数据实现简单加密效果
- 利用shell获取指定日期前N天的日期
- 深入理解MySQL中的事务机制
- 浅谈sql连接查询的区别 inner,left,right,full
- jQuery获取文本节点之 text()/val()/html() 方法区别
- JavaScript 获得选中文本内容的方法
- win2003 IIS虚拟主机网站防木马、权限设置、安全配置整理
- Android修改jar文件包名的方法分享
- Android webview与js交换JSON对象数据示例