vector是一种简单高效的容器,具有自动内存管理功能。对于大小为n的vector容器,它的元素下标是0~n-1。

vector有二个重要方法:
    begin(): 返回首元素位置的迭代器。
    end(): 返回最后一个元素的下一个元素位置的迭代器。

1、 vector对象创建的几种方式。
1)不指定容器元素个数。
    vector<double> v;
2)指定容器元素个数。
    vector<double> v(10);            //10个元素
3)指定容器元素个数并初始化。
    vector<double> v(10, 7.8);        //10个元素,初始化为7.8

2、访问和遍历vector容器
1)下标方式访问vector元素并赋值。类似数组的访问和赋值
    v[0] = 3.6;     v[3]=5.5;
2)使用迭代器配合循环对vector进行遍历访问

 vector<double> v();
v[] = 1.2;
v[] = 6.1;
v[] = 3.7;
vector<double>::iterator it;
for(it=v.begin(); it!=v.end(); it++)
{
cout<<*it<<endl;
}

3、 向vector中添加元素

1) 向vector容器的尾部追加新元素。
    v.push_back(new_element);
2) insert()方法在vector对象的任意位置前插入一个新元素,同时vector自动扩张一个元素空间,插入位置后的所有元素都向后挪动一个位置。
    v.insert(v.begin()+2, 12.5);        //在第二个元素前插入新元素12.5。
    v.insert(v.end(), 6.5);            //在容器的末尾加入了新元素6.5。

4、元素的删除
1) 删除一个元素或一段区间中所有元素
    v.erase(v.begin()+2);            //删除第二个元素,从0开始计数
    v.erase(v.begin()+1, v.begin()+5);    //删除第1~5中的所有元素。
2) 删除vector中所有元素
    v.clear();                //删除v中的所有元素

5、对vector中元素排序
1) sort()对元素排序。需要头文件”#include <algorithm>”
    sort(v.begin(), v.end());        //sort()默认升序排序

 //自己设计比较函数进行排序
bool comp(const int &a, const int &b)
{
return a>b;
}
sort(v.begin(), v.end(), comp); // 元素降序排列

2)reverse()反向排列。需要头文件”#include <algorithm>”

reverse(v.begin(), v.end());        //反向排列向量的从头到尾的元素

6、获得vector的大小
1) 使用size返回向量的大小,即元素个数。
    v.size();                //返回v的元素个数
2) empty()判断向量是否为空。
    v.empty();                //v如果为空,则返回逻辑真,即1,否则返回逻辑假0。

参考文献:
曾宗根, ACM程序设计, 北京大学出版社, 2008.11

C++中vector 容器的基本操作的更多相关文章

  1. C++中vector容器的常用操作方法实例总结

    C++中vector容器的常用操作方法实例总结 参考 1. C++中vector容器的常用操作方法实例总结: 完

  2. C++ STL之vector容器的基本操作

    注意事项:特别注意任何时候同时使用两个迭代器产生的将会是一个前闭后开的区间(具体见插入和删除的例子)特别注意begin()指向的是vec中的第0个元素,而end是指向最后一个元素的后面一个位置(不是最 ...

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

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

  4. (转载)C++STL中vector容器的用法

     vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说vec ...

  5. C++STL库中vector容器常用应用

    #include<iostream> #include<vector> #include<algorithm> using namespace std; int m ...

  6. c++中vector容器的功能及应用。

    vector基本操作:  1.头文件 #include<vector>. 注:一定要加上using namespace std;  2.vector对象的创建: vector<int ...

  7. C++STL(二)——vector容器

    STL--vector容器 vector对象的概念 vector基本操作 vector对象的初始化.赋值 vector查找.替换(已在上一片 string类 博客总结过了,不再总结) vector添加 ...

  8. C++ Daily《2》----vector容器的resize 与 reserve的区别

    C++ STL 库中 vector 容器的 resize 和 reserve 区别是什么? 1. resize 改变 size 大小,而 reserve 改变 capacity, 不改变size. 2 ...

  9. STL中vector、list、deque和map的区别

    1 vector     向量 相当于一个数组    在内存中分配一块连续的内存空间进行存储.支持不指定vector大小的存储.STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capac ...

随机推荐

  1. JavaBean--简介及基本使用

    JavaBean本身就是一个类,属于java的面向对象编程 JavaBean是使用java语言开发的一个可重用的组建,在JSP开发中如果要应用JSP提供的JavaBean标签来操作简单的类的话,需要满 ...

  2. 【记录】haphost免费vps初始配置

    1.配置德国epel源 yum install yum-priorities rpm -Uvh http://ftp-stud.hs-esslingen.de/pub/epel/6/i386/epel ...

  3. GridView绑定DataKeyNames以及如何取这些值

    DataKeyNames='FID'   //前台绑定一个值GridView1.DataKeys[e.Row.RowIndex].Value.ToString;-------------------- ...

  4. PAT (Advanced Level) 1044. Shopping in Mars (25)

    双指针. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #in ...

  5. JAVA基础-- 对象转型 (casting)

    1. 一个基类的引用类型变量可以指向其子类的对象: a=new Dog("bigyellow","yellow"); 2. 一个基类的引用不可以访问其子类对象新 ...

  6. Android源码之Gallery专题研究(2)

    引言 上一篇文章已经讲解了数据加载过程,接下来我们来看一看数据加载后的处理过程.按照正常的思维逻辑,当数据加载之后,接下来就应该考虑数据的显示逻辑. MVC显示逻辑 大家可能对J2EE的MVC架构比较 ...

  7. PHP学习笔记-1——快捷键

    整行删除 ctrl+E set get 生成 alt+ insert 查找.搜索和替换 Ctrl-F3 搜索位于插入点的词 F3/Shift-F3 在文件中查找下一个/上一个 Ctrl-F/H 在文件 ...

  8. SSH使用TCP Wrappers实现访问控制

    SSH使用TCP Wrappers实现访问控制主要配置文件/etc/hosts.allow/etc/hosts.deny===TCP Wrappers的访问控制原则首先检查 hosts.allow 文 ...

  9. Sping--自动装配(byname, bytype)

    UserDAOImpl.java: package com.bjsxt.dao.impl; import com.bjsxt.dao.UserDAO; import com.bjsxt.model.U ...

  10. Linux监控体系

    监控体系 zabbix 博客:www.abcdocker.com 微信公众号:abcdocker 笔者QQ:381493251 Abcdocker交流群:454666672 如果遇到什么问题可以进群询 ...