body, table{font-family: 微软雅黑; font-size: 10pt}
table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;}
th{border: 1px solid gray; padding: 4px; background-color: #DDD;}
td{border: 1px solid gray; padding: 4px;}
tr:nth-child(2n){background-color: #f8f8f8;}

能够动态增长,当   size()=capacity()   触发,容量在以前基础翻倍,但是效率不高,一般提前预设    reverse() 
#include<vector>
#include <iostream>
#include<vector>
using namespace std;
void print(vector<int> &vec)
{
        cout<<"vec.size="<<vec.size()<<endl;
        cout<<"vec.capacity="<<vec.capacity()<<endl;
}
int main()
{
        vector<int> vec;    
//具有动态增长功能,不预先开辟,初试大小为0,一旦往容器里面放东西,开始动态申请空间,当大小和容量相等时,触发容器申请空间,空间增长到当前大小的2倍
        vec.reserve(4);        //表示预先开辟大小为4的空间
        print(vec);
        vec.push_back(1);
        print(vec);
        vec.push_back(2);
        print(vec);
        vec.push_back(3);
        print(vec);
        vec.push_back(4);
        print(vec);
        vec.push_back(5);
        print(vec);
        vec.push_back(6);
        print(vec);
        for(int i=0;i<vec.size();i++)
        {
                cout<<vec[i]<<"  ";
        }
        cout<<endl;
        vector<int>::iterator vp;
        for(vp=vec.begin();vp!=vec.end();vp++)
        {
                cout<<*vp<<"  ";
        }
        cout<<endl;
}
//不预先开辟空间
//预先开辟空间4
#include<iostream>
#include<vector>
using namespace std;
void printNUM(vector<int> &ver)
{
        cout<<"vector.size:"<<ver.size()<<endl;
        cout<<"vector.capacity:"<<ver.capacity()<<endl;
}
//size()返回的是容器中push_back()的元素个数
//capacity()返回的是容器的空间(最多放多少个元素)
int main(void)
{
        vector<int> ver;
        //预先开辟空间
        ver.reserve(10);
        printNUM(ver);
        ver.push_back(1);
        printNUM(ver);   //vector当size和capacity一样大的时候,capacity会翻倍扩充
        ver.push_back(2);
        printNUM(ver);
        ver.push_back(3);
        printNUM(ver);
        ver.push_back(4);
        printNUM(ver);
        ver.push_back(5);
        printNUM(ver);
        ver.push_back(6);
        printNUM(ver);
        ver.push_back(7);
        printNUM(ver);
        ver.push_back(8);
        printNUM(ver);
        ver.push_back(9);
        printNUM(ver);
        for(int i=0;i!=ver.size();++i)
        {
                cout<<ver[i]<<"  ";
        }
        cout<<endl;
        vector<int>::iterator it;    //迭代器
        for(it=ver.begin();it!=ver.end();++it)
        {
                cout<<*it<<"  ";
        }
        cout<<endl;
}

vector概念的更多相关文章

  1. 数据结构与算法(2)- vector概念介绍

    声明:虽然本系列博客与具体的编程语言无关.但是本文作者对c++相对比较熟悉,其次是java,所以难免会有视角上的偏差.举例也大多是和这两门语言相关. Vector的出现主要是为了解决数组的静态空间的问 ...

  2. Linux x86_64 APIC中断路由机制分析

    不同CPU体系间的中断控制器工作原理有较大差异,本文是<Linux mips64r2 PCI中断路由机制分析>的姊妹篇,主要分析Broadwell-DE X86_64 APIC中断路由原理 ...

  3. Prometheus时序数据库-数据的查询

    Prometheus时序数据库-数据的查询 前言 在之前的博客里,笔者详细阐述了Prometheus数据的插入过程.但我们最常见的打交道的是数据的查询.Prometheus提供了强大的Promql来满 ...

  4. paper 5:支持向量机系列二: Support Vector —— 介绍支持向量机目标函数的 dual 优化推导,并得出“支持向量”的概念。

    paper 4中介绍了支持向量机,结果说到 Maximum Margin Classifier ,到最后都没有说“支持向量”到底是什么东西.不妨回忆一下上次最后一张图: 可以看到两个支撑着中间的 ga ...

  5. 矢量图形(vector graphics)和位图图像(bitmap)以及分辨率概念

    第一篇:凭心而论.客观地认识矢量图形与位图图像http://www.dzwebs.net/2003.html 学习过物理的人都明白,矢量有大小和方向,而标量只有大小却没有方向: 但是在计算机里面,图形 ...

  6. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  7. 【实战Java高并发程序设计6】挑战无锁算法:无锁的Vector实现

    [实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference [实战Java高并发程序设计 3]带有时间戳的对象 ...

  8. Java中vector的使用详解

    Vector 可实现自动增长的对象数组. java.util.vector提供了向量类(vector)以实现类似动态数组的功能.在Java语言中没有指针的概念,但如果正确灵活地使用指针又确实可以大大提 ...

  9. Java集合类学习-LinkedList, ArrayList, Stack, Queue, Vector

    Collection List 在Collection的基础上引入了有序的概念,位置精确:允许相同元素.在列表上迭代通常优于索引遍历.特殊的ListIterator迭代器允许元素插入.替换,双向访问, ...

随机推荐

  1. HTTPS复习

    Https Https其实是两个协议,即HTTP协议和SSL协议,但是由于HTTP协议应用广泛,而且需要为其提供数据隐私保护,所以将HTTP协议与SSL协议结合.HTTP属于应用层,在远古时代,它只需 ...

  2. “使用驱动器中J:的光盘之前需要将其格式化

    不知道神马原因致使U盘无法打开——大家千万注意:以后遇见这种情况千万别格式化(当然如果你的U盘或者硬盘里没有重要东西那就另当别论),进入“开始-cmd”,因为我的U盘在电脑上读出来是J盘,所以在cmd ...

  3. iOS开发之HelloKit代码片段

    完整代码托管:https://github.com/1042710553/HelloKit.git /************************/plist/****************** ...

  4. linux命令——chmod/chown

    改变文件所有权chown 例如 sudo chown username myfile 1 myfile文件的所有权变为username. chown -R username /files/work 1 ...

  5. 【WPF】修改ComboBox样式

    修改WPF默认的ComboBox控件样式 如下图所示: 修改代码如下: <UserControl.Resources> <Style TargetType="ToggleB ...

  6. RabbitMQ学习之(四)_PHP操作RabbitMQ简单Demo

    原理流程 生产者主要做的是:创建连接-->创建channel-->创建交换机对象-->发送消息 消费者主要做的是:创建连接-->创建channel-->创建交换机--&g ...

  7. HDFS并行复制Distcp

    1)Distcp(分布式拷贝)是用于大规模集群内部和集群之间拷贝的工具. 2)distcp命令是以MR作业(没有R任务)的形式实现的,把文件和目录的列表作为M任务的输入.每一个文件是由一个M任务来拷贝 ...

  8. 定制Writable类

    以IntWritable为例介绍,定制writable的步骤 //继承 WritableComparable接口(继承了writable接口和comparable接口) public class In ...

  9. cygwin下烧写文件到sd卡中

    在cygwin下将firmware_sdcard.bin写入到sd卡中(cygwin需要以管理员身份启动) 1查看sd分区情况 cat /proc/partitions  (为了找到sd卡的标记) 2 ...

  10. MySQL—记录的增删改查操作

    1.插入记录: 方法一:INSERT [INTO] tbl_name [(col_name,···)] {VALUES|VALUE} ({expr |DEFAULT},···),(···),··· 例 ...