#include<iostream>
#include<cstdio>
#include<string>
#include<vector>//不定长数组(向量)所需要包含的头文件 using namespace std; const int maxn = ; int n; int arr[]={,,,,};
/*不定长数组的声明方法*/ vector <int> pile;
//vector<T> v1 vector保存类型为T的对象。默认构造函数,v1为空
vector <int> pile_copy;
//vector<T> v2(v1) v2是v1的一个副本
vector <int> pile2(,);
//vector<T> v3(n,i) v3包含n个值为i的元素
vector <int> pile3();
//vector<T> v4(n) v4含有值初始化的元素的n个副本 如果为整形(int) 则为0 若为字符串(string)类型 则为空
vector <int> pile4{,};
//初始化第一个元素为1,第二个元素为2,其余按照默认值(0)初始化
vector <int> pile5(arr,&arr[]);
//以区间(beg;end)做为初值的vector
/*
此外不定长数组不限于基本类型 还可以是结构体类型(结构体要定义为全局的,否则会出错)
也可以是声明不定长类型的二维数组
*/
vector <vector <int> > pile6;//声明一个二维不定长数组 /* 不定长数组的使用方法*/ pile.push_back();
//尾部插入数字 1
pile.pop_back();
//在尾部删除一个元素
cout<<pile2[]<<endl;
//可以用数组方法访问不定长数组元素
pile3.assign(arr,&arr[]);
//吧arr[0]到arr[5]中的元素进行拷贝
vector<int>::iterator it;
//声明一个叫it的整形的迭代器
for(it=pile2.begin();it < pile2.end(); it++)
cout<<*it<<endl;
//利用迭代器对不定长数组进行遍历
//pile2.end();指向最后一个元素的下一个位置
/*关于迭代器:
迭代器(Iterator),提供了访问容器中对象的方法。
例如,可以使用一对迭代器指定list或vector中的一定范围的对象。
迭代器就如同一个指针。事实上,C++的指针也是一种迭代器。
但是,迭代器也可以是那些定义了operator*()以及其他类似于指针的操作符地方法的类对象;*/
pile2.insert(pile2.begin()+i,a);
//在第i+1个元素前面插入a;
pile2.eraser(pile2.begin()+);
//删除第3个元素
pile2.erase(pile2.begin()+i;pile2.begin()+j);
//删除i到j-1的区间(从0开始)
cout<<pile2.size()<<endl;
//获取当前不定长数组的大小
pile2.clear();
//清空向量
cout<<"pile大小是否为0:"<< (pile.empty()?"空":"不空")<<endl;
//判断pile是否为空
cout<<"pile可容纳的元素最大数量:"<<pile.max_size()<<endl;
//判断Pile可容纳的最大数量
pile.resize();
//将元素数量改成5,如果pile变大,则多的按默认走
pile.resize(,);
//将元素数量改成5,如果pile变大,则多的赋值成9

拓展阅读:

推荐博客地址: 对vector的用法及定义有较为详细的讲解 使用时可以留作参考

【算法专题】工欲善其事必先利其器—— C++ STL中vector(向量/不定长数组)的常用方法总结的更多相关文章

  1. STL之vector(不定长数组)

    vector就是一个不定长数组,另外它把一些常用操作“封装”在了vector类型内部.例如,若a是一个vector,可以用a.size()读取它的大小,a.resize()改变大小,a.push_ba ...

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

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

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

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

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

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

  5. (STL初步)不定长数组:vector

    STL是指C++的标准模板库.(存储着一些常用的算法和容器) vector是一个不定长数组.它把一些常用的操作”封装“在vector类型内部. 例如,a是一个vector.1对元素的操作有,可以用a. ...

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

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

  7. STL中vector的赋值,遍历,查找,删除,自定义排序——sort,push_back,find,erase

    今天学习网络编程,那个程序中利用了STL中的sort,push_back,erase,自己没有接触过,今天学习一下,写了一个简单的学习程序.编译环境是VC6.0         这个程序使用了vect ...

  8. STL中 vector 和 list 一些特性

    STL中的vector特点是: 其容量在需要时可以自动分配,本质上是数组形式的存储方式.即在索引可以在常数时间内完成.缺点是在插入或者删除一项时,需要线性时间.但是在尾部插入或者删除,是常数时间的. ...

  9. C++STL之Vector向量详解,用法和例子 一起学习 一起加油

                                                                                    C++ STL之vector用法总结 1 ...

随机推荐

  1. Linux Telnet安装配置

    本文以红帽6.2 64位版本为例,其它linux类似: linux默认是使用SSH服务的 而不安装telnet服务 ,所以需要手动安装telnet. 1.telnet的安装包有两个,分别是: teln ...

  2. PHP专业开发IDE——Zend Studio 10.5预览版发布

    Zend Studio是新一代的PHP IDE,高效的开发和维护PHP代码是它的核心.Zend公司目前已发布了Zend Studio 10.5预览版,预览版中提高了快速响应能力和时时误差检查.因此使用 ...

  3. Python开发环境Wing IDE 5.0测试第八版发布

    Wing IDE是著名的Python开发工具,是Wingware公司的主要产品.从1999年起,Wingware公司便开始专注于Python开发设计.Wing IDE在十几年的发展中,不管完善.其强大 ...

  4. 查询在应用程序运行得很慢, 但在SSMS运行得很快的原因探究

    原文:查询在应用程序运行得很慢, 但在SSMS运行得很快的原因探究 查询在应用程序运行得很慢, 但在SSMS运行得很快的原因探究 -理解性能疑点 1      引言 内容来自http://www.so ...

  5. JQuery each详细用法

    each()方法能使DOM循环结构简洁,不容易出错.each()函数封装了十分强大的遍历功能,使用也很方便,它可以遍历一维数组.多维数组.DOM, JSON 等等在javaScript开发过程中使用$ ...

  6. every、some、filter、map、forEach 方法的区别总结

    API功能描述: [every]:Boolean 遍历数组并执行回调,如果每个数组元素都能通过回调函数的测试则返回true,否则返回false.一旦返回false,将立即终止循环. [some]:Bo ...

  7. AngularJS 3

    AngularJS 源码分析3 本文接着上一篇讲 上一篇地址 回顾 上次说到了rootScope里的$watch方法中的解析监控表达式,即而引出了对parse的分析,今天我们接着这里继续挖代码. $w ...

  8. C#动态表达式计算(续2)

    上两篇废话太多,这一次我就不多说了,由于代码比较简单,可以直接从https://github.com/scottshare/DynamicExpress.git地址下载. 以下说明一下使用方法: Dy ...

  9. Ninject的项目情况

    Ninject的项目情况 首先,它有很多的项目组成,适合不同的环境,当然它有几个基本的核心库. 为什么它会有这么多的库呢?因为轻量级,易于使用和被扩展是它的目标,代码越是少,你使用代码的可能性越高嘛. ...

  10. ORACLE总结系列1--network文件夹里的admin的三个文件信息

    sqlnet.ora 作用类似于linux或者其他unix的 nsswitch.conf文件,通过这个文件来决定怎么样找一个连接中出现的连接字符串(connect descriptor) 假如sqln ...