#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
typedef vector<int> vt;
int main()
{
 int i;
 vt v1(10); //定义向量10个元素,注意每个元素初始化为了0
 for (i = 0; i < 10; i++)
  cout << v1[i] << " ";
 cout << endl;
//---输出0 0 0 0 0 0 0 0 0 0 
 int a[9] = { 1, 3, 2, 4, 6, 7, 8, 3,6 };
 vt v2(a, a + 8);//将数组a的第一个元素到第8个元素作为v2初始化值
 for (vector<int>::iterator it = v2.begin(); it != v2.end(); it++)
  cout << *it << "  ";
 cout << endl;
//使用迭代器iterator遍历的方法输出向量元素,输出为1 3 2 4 6 7 8 3
//插入函数insert(),能在向量中指定位置插入一个元素
//--------------------------------------------------------------------------------------
//插入前结果  1 3 2 4 6 7 8 3
 v2.insert(v2.begin(), 4);//在v2开头(下标为0的元素)前面插入数据4
//插入后结果  4 1 3 2 4 6 7 8 3
 v2.insert(v2.begin() + 2, 5);//把数据5插入到下标为2处
//插入后结果  4 1 5 3 2 4 6 7 8 3
 v2.insert(v2.end(), 18);//在v2最后插入数据18
//插入后结果  4 1 5 3 2 4 6 7 8 3 18
//---------------------------------------------------------------------------------------
//删除函数erase(),能在向量中指定位置插入几个元素
    vt v3(a, a + 8);
 v3.erase(v3.begin()+2);//删除下标为2的元素
 for (vector<int>::iterator it = v3.begin(); it != v3.end(); it++)
  cout << *it << "  ";
  cout << endl;
//----输出结果1 3 4 6 7 8 3
 v3.erase(v3.begin() + 1, v3.begin() +3);//左闭右开删除下标为1(包括1)到下标为3(不保存3)之间元素
 for (vector<int>::iterator it = v3.begin(); it != v3.end(); it++)
  cout << *it << "  ";
 cout << endl;
//----输出结果1 6 7 8 3
 v3.erase(v3.end()-1);//删除末尾元素,由于右开特性,*(v3.end()-1)才是左后一个元素
 for (vector<int>::iterator it = v3.begin(); it != v3.end(); it++)
  cout << *it << "  ";
 cout << endl;
//----输出结果1 6 7 8
//---调用clear()函数清空向量
 v3.clear();
 cout << v3.size() << endl; //输出为0
//------------------------------------------------------------------------------------------
//--sort()函数对向量进行(默认)升序排序包含于头文件#include<algorithm>中
 vt v4(a, a + 9);
 sort(v4.begin(), v4.end());
 for (i = 0; i < 9; i++)
  cout << v4[i] << " ";
 cout << endl;
//输出1 2 3 3 4 6 6 7 8
}

C++STL中的向量vector的更多相关文章

  1. 标准模板库中的向量(vector)

    //C++数据结构与算法(第4版) Adam Drozdek 著  徐丹  吴伟敏<<清华大学出版社>> 头文件:#include<vector> 向量是最简单的S ...

  2. C++中STL中简单的Vector的实现

    该vector只能容纳标准库中string类, 直接上代码了,StrVec.h文件内容为: #ifndef STRVEC_H #define STRVEC_H #include<iostream ...

  3. STL中list和vector在添加元素时push_back会调用拷贝构造函数

    #include <iostream> #include <list> #include <vector> #include <cstring> usi ...

  4. C++ STL中vector(向量容器)使用简单介绍

    原文:http://www.seacha.com/article.php/knowledge/cbase/2013/0903/2205.html C++ vector(向量容器)是一个线性顺序结构.相 ...

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

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

  6. 【转】STL中vector、list、deque和map的区别

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

  7. DLL中传递STL参数(如Vector或者list等)会遇到的问题[转载]

    最近的一个项目中遇到了调用别人的sdk接口(dll库)而传给我的是一个vector指针,用完之后还要我来删除的情况.这个过程中首先就是在我的exe中将其vector指针转为相应指针再获取vector中 ...

  8. C++的STL中vector内存分配方法的简单探索

    STL中vector什么时候会自动分配内存,又是怎么分配的呢? 环境:Linux  CentOS 5.2 1.代码 #include <vector> #include <stdio ...

  9. [转]STL中vector转数组(实际是数组的指针)

    感谢:http://topic.csdn.net/t/20050429/20/3976956.html 感谢:http://yzyanchao.blogbus.com/logs/47796444.ht ...

随机推荐

  1. C#读取xml文件写入到TreeView中

    开发过程中我们会遇到一些读取xml文件的时候,下面是我学习的整理. 用XmlDocument读取加载 XmlDocument doc = new XmlDocument(); doc.Load(&qu ...

  2. $this和self、parent这三个关键词分别代表什么?在哪些场合下使用?

    $this:当前对象 self: 当前类 parent: 当前类的父类 $this在当前类中使用,使用->调用属性和方法. self也在当前类中使用,不过需要使用::调用. 静态属性,不能在类里 ...

  3. thinkPHP判断是否修改成功

    thinkPHP中使用save方法来更新数据的save方法的正常执行时返回值是影响的记录数,出错时返回false,返回为0和返回false在很多业务场景下都是不同的. 而当修改的内容和原有内容一致的时 ...

  4. POJ 3461Oulipo KMP模板

    KMP之所以线性,因为匹配的时候i是不往回走的 我们只用调整j的位置 假设在s中找t 用二元组(i,j)表示s串的[i-j+1,i] 与t串的[1,j]匹配 假设s[i+1]和t[j]匹配上了,就j+ ...

  5. gcc 编译器常用的命令行参数一览

    这些常用的 gcc/g++ 命令行参数,你都知道么? 1. gcc -E source_file.c -E,只执行到预编译.直接输出预编译结果. 2. gcc -S source_file.c -S, ...

  6. IE6对!important单个的类是支持的

    "!important"是什么? 第一个,是设置样式的优先级,设了!important的样式的属性优先于id选择器和class选择器.,比如id为"Main"的 ...

  7. bzoj 4443 [Scoi2015]小凸玩矩阵 网络流,二分

    [Scoi2015]小凸玩矩阵 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1564  Solved: 734[Submit][Status][Di ...

  8. angular组件--tips提示功能

    将组件封装起来在项目中开发很实用,之前遭遇过一次痛苦的经历,那阵子改的要吐血了.常用的组件封装起来,改公共的地方,往往多处受用. 例如:我在项目中引用  tips.text('加载中...',fals ...

  9. jquerydom对象和字符串之间的转换

    字符串转jquery对象:var tmp = $('<div>dd</div>').attr('id','bbq'); //用$符包裹起来即可 jquery对象转字符串: tm ...

  10. Aspose.Cells 基础用法

    最近使用Aspose.Cells做Excel,在怎么添加批注和添加内部导航链接上耗费了一些时间,最后在官网上找到相关用法,记录一下. 代码不用过多介绍,看看即可明白. 测试代码下载 Workbook ...