STL之vector(向量)
C++编程语言中有一种叫做Vector的应用方法,它的作用在实际编程中是非常重要的,这里详细介绍一下C++ Vector的相关应用技巧及基本内容:
Construct vector
#include
#include
using namespace std ;
int main() {
vector first ; //定义一个对象
vector second(4,100) ; //定义一个对象,并为该对象赋初始值
vector third(second.begin(),second.end()) ; // 将对象second中的值赋给hird
vector fourth(third) ; //将对象third中的值赋给ourth
int a[] = {1,2,3,4,5,6,7,8} ;
vector fifth(a,a+6) ; //将数组a中的前6个值赋给对象ifthvector::iterator iter2 = second.begin() ;
for(; iter2 != second.end() ; iter2++)
cout ::iterator iter3 = third.begin() ;
for(; iter3 != third.end() ; iter3++)
cout ::iterator iter4 = fourth.begin() ;
for(; iter4 != fourth.end() ; iter4++)
cout ::iterator iter5 = fifth.begin() ;
for(; iter5 != fifth.end() ; iter5++)
cout
对象的复制#include
#include
#include
using namespace std ;
typedef vector ve ;
int main() { //对象的复制
ve foo(3,0) ;
ve bar(5,0) ;
bar = foo ;
foo = ve() ;
cout
逆序输出:#include
#include
#include
using namespace std ;
typedef vector ve ;
int main() { //逆序输出
int a[] = {1,2,3,4,5,6,7,8} ;
ve v(a,a+sizeof(a)/sizeof(int)) ;
ve::reverse_iterator iter = v.rbegin() ;
for( ; iter != v.rend() ; iter++)
cout
重定义对象的大小:#include
#include
#include
using namespace std ;
typedef vector ve ;
int main() {
int a[] = {1,2,3,4,5,6,7,8} ;
ve v(a,a+sizeof(a)/sizeof(int)) ;
v.resize(10) ;
for(int i = 0 ; i
判断对象是否为空:#include
#include
#include
using namespace std ;
typedef vector ve ;
int main() {
int a[] = {1,2,3,4,5,6,7,8} ;
ve v(a,a+sizeof(a)/sizeof(int)) ;
while(!v.empty()) {
cout
对象中第一个元素和最后一个元素:#include
#include
#include
using namespace std ;
typedef vector ve ;
int main() {
int a[] = {1,2,3,4,5,6,7,8} ;
ve v(a,a+sizeof(a)/sizeof(int)) ;
cout
在对象中插入一个元素:#include
#include
#include
using namespace std ;
typedef vector ve ;
int main() {
int a[] = {1,2,3,4,5,6,7,8} ;
ve v(a,a+sizeof(a)/sizeof(int)) ;
ve::iterator iter = v.begin() ;
iter = v.insert(iter+2,200) ; // 在第二个元素之后插入一个元素200
for(int i = 0 ; i
或者这样实现插入:#include
#include
#include
using namespace std ;
typedef vector ve ;
int main() {
int a[] = {1,2,3,4,5,6,7,8} ;
ve v(a,a+sizeof(a)/sizeof(int)) ;
v.insert(v.begin(),2,200) ; // 在第一个元素之前插入两个元素200
for(int i = 0 ; i
对象中元素的删除:#include
#include
#include
using namespace std ;
typedef vector ve ;
int main() {
int a[] = {1,2,3,4,5,6,7,8} ;
ve v(a,a+sizeof(a)/sizeof(int)) ;
v.erase(v.begin(),v.begin()+2) ; // 删除前两个元素
for(int i = 0 ; i
清空对象中的所有元素:#include
#include
#include
using namespace std ;
typedef vector ve ;
int main() {
int a[] = {1,2,3,4,5,6,7,8} ;
ve v(a,a+sizeof(a)/sizeof(int)) ;
v.clear() ;
for(int i = 0 ; iSTL之vector(向量)的更多相关文章
- C++STL之Vector向量详解,用法和例子 一起学习 一起加油
C++ STL之vector用法总结 1 ...
- C++STL之vector向量容器
vector向量容器 vector向量容器不但能向数组一样对元素进行随机访问, 还能在尾部插入元素 vector具有内存自动管理的功能, 对于元素的插入和删除, 可动态调整所占的内存空间 vect ...
- STL --> vector向量
vector向量 vector是一种对象实体,能够容纳许多其他类型相同的元素,因为又被称为容器. 头文件 在使用它时,需要包含头文件 <vector>. #include <vect ...
- 跟我一起学STL(2)——vector容器详解
一.引言 在上一个专题中,我们介绍了STL中的六大组件,其中容器组件是大多数人经常使用的,因为STL容器是把运用最广的数据结构实现出来,所以我们写应用程序时运用的比较多.然而容器又可以序列式容器和关联 ...
- STL 统计vector容器中指定对象元素出现的次数:count()与count_if()算法
1 统计vector向量中指定元素出现的次数:count()算法 利用STL通用算法统计vector向量中某个元素出现的次数:count()算法统计等于某个值的对象的个数. #include &quo ...
- vector 向量容器用法祥解
vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的. 用法: ...
- STL中vector、list、deque和map的区别
1 vector 向量 相当于一个数组 在内存中分配一块连续的内存空间进行存储.支持不指定vector大小的存储.STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capac ...
- 【转】STL中vector、list、deque和map的区别
1.vector 向量 相当于一个数组 在内存中分配一块连续的内容空间进行存储.支持不指定vector大小的存储.STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capacity()函数 ...
- vector向量容器(常用的使用方法总结)
关于STL中vector容器的学习,编译运行后边看代码,边看执行结果效果更佳,还是想说看别人的代码一百遍,不如自己动手写一遍. vector向量容器不但能像数组一样对元素进行随机访问,还能随时在尾部插 ...
- [STL][C++]VECTOR
参考:http://blog.csdn.net/hancunai0017/article/details/7032383 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个 ...
随机推荐
- SMT贴片机抛料的成因和回流焊横向温差问题
SMT贴片机抛料的主要原因分析 在SMT生产过程中,怎么控制生产成本,提高生产效率,是企业老板及工程师们很关心的事情,而这些跟SMT贴片机的抛料率有很大的联系,以下就谈谈SMT贴片机的抛料问题. 所谓 ...
- Android学习路径图
一个PHPer转战Android学习过程: 直接跨过java的学习,原因有我之前看过毕向东和张孝祥的Java基础课程,虽然中间好几次看睡着,但java的环境是能跑起来的.我建议大家如果没有Java基础 ...
- 窗口嵌入到另一个窗口(VC和QT都有)
1.用vc新建一个dialog1工程.属性默认. 2.insert一个dialog2,改为child. 3.在dialog1中包含dialog2头文件,在一个按钮事件中显示dialog2: Cdial ...
- css em
em与px换算 任意浏览器的默认字体高度16px(16像素).所有未经调整的浏览器都符合: 1em=16px.那么,12px=0.75em,10px=0.625em.为了简化font-size的换算, ...
- SPOJ 687 Repeats(后缀数组+ST表)
[题目链接] http://www.spoj.com/problems/REPEATS/en/ [题目大意] 求重复次数最多的连续重复子串的长度. [题解] 考虑错位匹配,设重复部分长度为l,记s[i ...
- iPhone 6 为何坚持1GB内存?
原文地址:http://digi.ifeng.com/expert/special/96/#6467378-qzone-1-9015-46cf52f061fd6e814686a918cedcb024 ...
- mysql的索引问题
注意:索引一般适合用于经常查询的数据,可以提高查询效率:但是不适合用于经常用到增.删.改的数据:会影响效率低. 1.unique key->(唯一索引)在一张表里可以有多个,起到约束的作用:避免 ...
- nefu 462 fib组合
nefu 462 fib组合 (斐波那契数列的通项公式以及推倒过程) 分类: 数学2014-05-21 10:27 190人阅读 评论(0) 收藏 举报 题目链接:http://acm.nefu.ed ...
- Cocos2d-iPhone V3 (2) 场景转换
Cocos2d-iPhone V3 (2) 场景转换 博客:http://blog.csdn.net/prevention 作者:大锐哥 - 1. 准备工作 创建一个场景会吧? #import &qu ...
- 配置vim之插件
涉及linux平台下ctags, taglist插件 ctags是一个用于产生代码索引文件的插件,它产生的索引可以帮助我们更快的定位到特定位置. ctags支持很多语言,比如java, c, c++, ...