Vector

  1.可变长的动态数组

  2.需包含头文件#include<vector> (当然,如果用了万能头文件#include<bits/stdc++.h>则可忽略)

  3.支持随机访问迭代器:

  •     根据下标随机访问某个元素,时间复杂度O(1)
  •     在尾部添加速度很快
  •     在中间插入慢

  4.所有STL算法都能对vector操作。

下面是关于vector使用的代码:

  

 #include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void fun(int &n) //配套for_each输出vector容器
{
cout<<n<<" ";
}
//自己设计比较函数,对元素进行降序排列。
bool cmp(const int &a,const int &b)
{
if(a!=b) return a>b;
}
int main(int argc, char const *argv[])
{
vector<int> v(); //定义一个vector容器
vector<int>::iterator i; //vector<int>::iterator i--迭代器定义
//对vector赋值
for(int j=;j<v.size();++j)
v[j]=;
v[]=;v[]=;v[]=;
v.at()=;
//输出vector的值
cout<<"The original vector is:";
for_each(v.begin(),v.end(),fun);
//相当于for(vector<int>::iterator i=v.begin();i!=v.end();++i)
//fun函数用来输出
//STL中的功能,便于输(tou)出(lan) :)
cout<<"\n"; //向vector中插入元素
v.insert(v.begin(),); //在v[0]插入9
v.insert(v.begin()+,); //在v[2]插入19
v.insert(v.end(),); //在最后一个位置v[10+2+1]插入29
//输出
cout<<"The new vector is:";
for_each(v.begin(),v.end(),fun);
cout<<endl; //删除
v.erase(v.begin()+);
v.erase(v.begin()+,v.begin()+);
cout<<"The Deleted vector is:";
for_each(v.begin(),v.end(),fun); //清空 v
v.clear();
cout<<endl<<"Cleared vector-size is:"<<v.size()<<endl;
cout<<endl; //开始排序
cout<<"sort-vector:"<<endl;
for (int j = ; j < ; ++j)
{
v.push_back(-j);
}
cout<<"The original vector is:";
for_each(v.begin(),v.end(),fun);
cout<<endl;
sort(v.begin(),v.end()); //排序,默认升序.
cout<<"The sorted vector is:";
for_each(v.begin(),v.end(),fun);
cout<<endl;
//将vector逆转
reverse(v.begin(),v.end());
cout<<"The reversed vector is:";
for (i = v.begin(); i != v.end(); ++i)
{
cout<<*i<<" ";
}
cout<<endl;
//用自定义的排序规则,按从大到小排序
sort(v.begin(),v.end(),cmp);
cout<<"The ownner-sorted original-vector is:";
for_each(v.begin(),v.end(),fun);
cout<<endl; int a[]={,,,,}; //定义一个数组,并用vector复制
vector<int> v2(a,a+); //构造函数并复制 a中的前3个数字
cout<<"v2为:";
for_each(v2.begin(),v2.end(),fun);
return ;
}

编译结果如下:

STL笔记(に)--vector容器的更多相关文章

  1. 带你深入理解STL之Vector容器

    C++内置了数组的类型,在使用数组的时候,必须指定数组的长度,一旦配置了就不能改变了,通常我们的做法是:尽量配置一个大的空间,以免不够用,这样做的缺点是比较浪费空间,预估空间不当会引起很多不便. ST ...

  2. 跟我一起学STL(2)——vector容器详解

    一.引言 在上一个专题中,我们介绍了STL中的六大组件,其中容器组件是大多数人经常使用的,因为STL容器是把运用最广的数据结构实现出来,所以我们写应用程序时运用的比较多.然而容器又可以序列式容器和关联 ...

  3. STL 查找vector容器中的指定对象:find()与find_if()算法

    1 从vector容器中查找指定对象:find()算法 STL的通用算法find()和find_if()可以查找指定对象,参数1,即首iterator指着开始的位置,参数2,即次iterator指着停 ...

  4. STL之vector容器详解

    vector 容器 vector是C++标准模版库(STL,Standard Template Library)中的部分内容.之所以认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单的说: ...

  5. [转]STL之vector容器详解

    vector 容器 vector是C++标准模版库(STL,Standard Template Library)中的部分内容.之所以认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单的说: ...

  6. STL之vector容器的实现框架

    说明:本文仅供学习交流,转载请标明出处,欢迎转载. 实现vector容器的思路等同于实现一个动态数组,以下我们參照源代码的相关资料,给出一个vector容器的大致框架,仅仅有声明,没给出详细的实现. ...

  7. 【C++】STL,vector容器操作

    C++内置的数组支持容器的机制,但是它不支持容器抽象的语义.要解决此问题我们自己实现这样的类.在标准C++中,用容器向量(vector)实现.容器向量也是一个类模板.标准库vector类型使用需要的头 ...

  8. STL中vector容器实现反转(reverse)

    vector容器中实现可以通过以下两种方式实现: #include "stdafx.h" #include <vector> #include <iostream ...

  9. STL:vector容器用法详解

    vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组.像数组一样,vector类也用从0开始的下标表示元素的位置:但和数组不同的是,当vector对象创建后,数组的元素个数会随着ve ...

随机推荐

  1. JMeter - 实时结果 - InfluxDB和Grafana - 第2部分 - 添加自定义字段

    我已经使用InfluxDB + Grafana来获取我的JMeter测试的实时结果.您可以在此处找到有关基本设置的更多详细信息.在本文中,让我们看看我们如何在InfluxDB测量中添加一些自定义字段, ...

  2. 4、kvm相关网卡操作(添加、删除)

    查看虚拟机的网卡信息 virsh domiflist privi-server 添加临时网卡 virsh attach-interface privi-server --type bridge --s ...

  3. 统计分析: 跨库多表join

    mysql中如果多个库在一个实例上, 可以进行多表的跨库Join, 但是如果后期数据库分隔到不同的实例机器上,有查询问题 mysql的查询优化器没有其他商业数据库做的好, 用来CRUD还行, 但是做大 ...

  4. 数据库的 2个参数 NLS_LENGTH_SEMANTICS 说明,comment 说明

    ############### sample 1: NLS_LENGTH_SEMANTICS 1.数据库字符集选择的是NLS_CHARACTERSET=UTF8,如果NLS_CHARACTERSET= ...

  5. SQL 分页实现

    --通用分页 ALTER PROCEDURE [dbo].[Sys_Pagination_1] @tblName VARCHAR(2000) , -- 表名 @strGetFields VARCHAR ...

  6. springBoot jpa uuid生成策略

    实体类 import org.hibernate.annotations.GenericGenerator; import javax.persistence.*; @Entity @Table(na ...

  7. 关于node中的板块问题

    最近自己在看node实战那本书,不过发现有一些书上不对的地方,罗列如下:1.connect服务自己有一些中间件可供使用,但是书上说的有cookie-parser.logger.favicon和body ...

  8. 关于在C++中调用system函数

    先看看下面的这一段程序: #include <iostream> #include <cstdlib> int main(int argc, char* argv[]) { s ...

  9. 软件测试Lab 1 Junit and Eclemma

    首先安装eclipse 然后下载hamcrest-core-1.3.jar,下载地址:http://mvnrepository.com/artifact/org.hamcrest/hamcrest-c ...

  10. rmtree函数

    blog.csdn.net/my2010sam/article/details/8956353