C++的vector的使用方法
vector
c++的vector的使用方法,创建,初始化,插入,删除等。
#include "ex_vector.h"
#include <iostream>
#include <vector>
#include <string>
using namespace std;
void ex_vector01_main()
{
//#######################################################################################
//初始化vector的方法
vector<int> v1; //v1是一个空vector,它的潜在元素是int类型的,执行默认初始化
vector<int> v2(v1); //v2包含v1所有元素的副本
//这里尝试先给v1添加元素,后看看v2是什么情况
vector<int> v22 = v1; //等价于v2(v1),v2包含v1所有元素的副本
vector<float> v3(10, 11.0); //v3包含10个重复的元素,每个元素的值都是11
vector<int> v4(10); //v4包含了10个重复执行了值初始化的对象
vector<string> v5{ "a","b","cc","d" }; //v5包含了4个元素
vector<string> v55 = { "a","b","cc","d" }; //等价于v5{ "a","b","cc","d" };
//#######################################################################################
//初始化使用圆括号和花括号的区别
//使用圆括号是,提供的值是用来构造vector对象的
//使用花括号是,想用列表初始化vector对象的,初始化过程会尽可能的把花括号内的值当做是元素的初始
// 值的列表来处理,只有在无法执行列表初始化的时候才会尽可能的考虑其他初始化的方式
vector<int> va1(10); //va1有10个元素,每个值都是0
vector<int> va2{ 10 }; //va2有1个元素,该元素的值是10
vector<int> va3(10, 1); //va3有10个元素,每个的值都是1
vector<int> va4{ 10,1 };//va4有两个元素,值分别是10,1
vector<string> va5{ "hi" }; //列表初始化:va5有一个元素
//vector<string> va6("hi"); //错误,不能使用字符串字面值构建vector对象
//这种就是不使用花括号内的值来初始化对象
vector<string> va7{ 10 }; //va7有10个默认初始化的元素
vector<string> va8{ 10,"hi" }; //va8有10个值为"hi"的元素
//#######################################################################################
//向vector中添加元素
//最常见的一种方式就是先定义一个空的vector,然后当运行时在逐一添加。
vector<int> vb1(2, 100);
for (int i = 0; i < 10; i++)
{
vb1.push_back(i);//依次把整数数值添加到vb2的末尾
}
if (vb1.empty())
{
cout << "vb1 is empty" << endl;
}
else
{
cout << "第一种循环方法:"<<endl;
cout << "vb1 have " << vb1.size() << " elements" << endl;
for (int i = 0; i < 10; i++)
{
cout << vb1[i] << ", ";
}
cout<<endl;
cout << "第二种循环方法:"<<endl;
for(int &i:vb1)
cout<<i<<", ";
cout<<endl;
for(auto &i:vb1)
cout<<i<<", ";
cout<<endl;
}
}

更多内容详见我的个人主页:
C++的vector的使用方法的更多相关文章
- C++-二维vector初始化大小方法-备忘
来源: C++——二维vector初始化大小方法 1.直接用初始化方法 名字为vec,大小为n*m,初始值为0的二维vector. vector<vector<)); 2.用resize( ...
- 实战c++中的vector系列--再谈vector的insert()方法(都是make_move_iterator惹的祸)
之前说过了关于vector的insert()方法,把vector B的元素插入到vector A中.vector A中的结果我们可想而知,可是vector B中的元素还会怎样? 看看之前写过的程序: ...
- Java集合系列(二):ArrayList、LinkedList、Vector的使用方法及区别
本篇博客主要讲解List接口的三个实现类ArrayList.LinkedList.Vector的使用方法以及三者之间的区别. 1. ArrayList使用 ArrayList是List接口最常用的实现 ...
- vector 初始化所有方法
简介:vector可用于代替C中的数组,或者MFC中的CArray,从许多说明文档或者网上评论,一般一致认为应该多用vector,因为它的效率更高,而且具备很好的异常安全性.而且vector是STL推 ...
- vector数据查找方法
用STL编敲代码时常常使用vector容器来存储数据.当容器中的数据有序时我们能够採取两种方式: (1) 利用<algorithm>中的find函数进行查找: (2) 折半查找. 另外也能 ...
- c++ vector(向量)使用方法详解(顺序访问vector的多种方式)
来源:http://www.jb51.net/article/44231.htm 作者: 字体:[增加 减小] 类型:转载 时间:2013-12-08我要评论 vector是向量类型,它可以容纳许多类 ...
- C++ 中vector的使用方法(转)
原地址:http://blog.csdn.net/duan19920101/article/details/50617190/ 在c++中,vector是一个十分有用的容器. 作用:它能够像容器一样存 ...
- C++——二维vector初始化大小方法
初始化二维vector,为r*c的vector,所有值为0.1.直接用初始化方法(刚开始没想到) vector<vector<int> > newOne(r, vector&l ...
- C++关于容器vector的使用方法以及#ifdef #else #endif #if #ifndef 的使用
//此处根据0还是1来判断具体使用那一段主函数 #if 1 #define WAY #endif #ifdef WAY #include <iostream> #include<st ...
随机推荐
- SpringBoot2.x入门:引入web模块
前提 这篇文章是<SpringBoot2.x入门>专辑的第3篇文章,使用的SpringBoot版本为2.3.1.RELEASE,JDK版本为1.8. 主要介绍SpringBoot的web模 ...
- Spring Security 实战干货:图解Spring Security中的Servlet过滤器体系
1. 前言 我在Spring Security 实战干货:内置 Filter 全解析对Spring Security的内置过滤器进行了罗列,但是Spring Security真正的过滤器体系才是我们了 ...
- (四)ansible 通过堡垒机访问内网服务器
场景: 在ansible的使用过程中,存在这样的场景,ansible所在的管理节点与被管理的机器需要 通过一个跳板机才能连接,无法直接连接.要解决这个问题,并不需要在 ansible里做什么处 ...
- POJ3190贪心
题意:这里有N只 (1 <= N <= 50,000) 挑剔的奶牛! 他们如此挑剔以致于必须在[A,B]的时间内产奶(1 <= A <= B <= 1,000,000)当 ...
- Maven一键部署Springboot到Docker仓库,为自动化做准备
1 前言 前面<Springboot整合MongoDB的Docker开发,其它应用也类似>讲解了如何做Docker开发.如何把Springboot应用打包成一个镜像,但它是手动的,本文将讲 ...
- 关于点击input框唤醒键盘导致input被遮盖的问题
关于点击input框唤醒键盘导致input被遮盖的问题 这个问题相信大家在实际开发过程当中都有遇见,我自己也遇见过很多次.之前在百度上看见大多数的方法利用的都是键盘唤醒了之后,页面的实际高度会发生变化 ...
- testNG jar包启动找不到org.testng.TestNG
主要是因为打包时依赖的jar包没有打入,网上有很多需要将对应的jar单独拷贝出来然后通过classpath引用启动,但是感觉这个就是个无底洞.拷贝了这么多个包最后还是说找不到ObjectId 启动命令 ...
- 谈谈你对 TCP 三次握手和四次挥手的理解
TCP三次握手: 1.客户端发送syn包到服务器,等待服务器确认接收. 2.服务器确认接收syn包并确认客户的syn,并发送回来一个syn+ack的包给客户端. 3.客户端确认接收服务器的syn+ac ...
- 大话一个CPU(沙子是如何影响未来的)
大话一个CPU(沙子是如何影响未来的) CPU是个啥? 先大体上了解一下 中央处理器 (英语:Central Processing Unit,缩写:CPU),是计算机的主要设备之一,功能主要是解释计算 ...
- java 数据结构(十一):Map接口
双列集合框架:Map1.常用实现类结构 |----Map:双列数据,存储key-value对的数据 ---类似于高中的函数:y = f(x) * |----HashMap:作为Map的主要实现类:线程 ...