vector 的用法(c++)
vertor是向量类型,它是一个对象实体。它作为容器可以容纳不同的实体,如int,flout,double,还有类类型。
1.包含头文件 #include <vector>
2.声明:vector<int> vet;
3.定义:
vector<int> a();//定义了10个整数的向量,没有给初值,值不确定
vector<int> b(,);//定义10个整数的向量,每个元素初值都是1
vector<int> c(b);//用另一个向量创建新向量
vector<int> d(b.begin(),b.begin()+);//从b向量0到2元素的向量 int arr[]={,,,,,,};
vector<int> va(arr,arr+);//从数组创建向量
4.遍历:
遍历有两种方式,一个是用下标遍历,类似数组,还有就是使用迭代器遍历,代码如下:
//遍历:
for(int i=;i<a.size();i++){
cout<<a[i]<<" ";
}
cout<<endl; vector<int>::iterator it;
for(it=b.begin();it!=b.end();it++){
cout<<*it<<" ";
}
cout<<endl;
5.在结尾处添加元素:va.push_back(8);
6.删除结尾的元素:va.pop_back();
7.查看向量的大小:va.size();
8.查看向量是否为空:va.empty();
9.插入元素:va.insert(va.begin()+3,10);
10.删除某个元素:va.erase(va.begin()+3);
10.清空所以元素:va.clear()
算法: 包含头文件 #include <algorithm>
1.sort(va.begin(),va.end()), 对向量进行排序。默认为从小到大。
2.reverse(va.begin(),va.end()),对向量进行翻转
代码:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std; void print_vec(vector<int> & a){
vector<int>::iterator it;
for(it=a.begin();it!=a.end();it++){
cout<<*it<<" ";
}
cout<<endl;
} int main(){ vector<int> a();//定义了10个整数的向量,没有给初值,值不确定
vector<int> b(,);//定义10个整数的向量,每个元素初值都是1
vector<int> c(b);//用另一个向量创建新向量
vector<int> d(b.begin(),b.begin()+);//从b向量0到2元素的向量 int arr[]={,,,,,,};
vector<int> va(arr,arr+);//从数组创建向量 //遍历:
for(int i=;i<a.size();i++){
cout<<a[i]<<" ";
}
cout<<endl; vector<int>::iterator it;
for(it=b.begin();it!=b.end();it++){
cout<<*it<<" ";
}
cout<<endl; va.push_back();
print_vec(va); va.pop_back();
print_vec(va); a.assign(va.begin(),va.begin()+);
print_vec(a); a.assign(,);
print_vec(a); a.clear();
cout<<"clear"<<endl;
print_vec(a); if(a.empty()) cout<<"empty"<<endl; a.resize();
print_vec(a);
a.clear();
a.resize(,);
print_vec(a); //插入删除元素
cout<<"插入和删除:"<<endl;
va.insert(va.begin()+,);//在该位置插入对应的元素
print_vec(va);
va.erase(va.begin()+);//删除该位置的元素
print_vec(va); if(a==b) cout<<"equal"<<endl; cout<<"size:"<<va.size()<<"front: "<<va.front()<<" back:"<<va.back()<<endl; //算法
reverse(va.begin(),va.end());
print_vec(va); sort(va.begin(),va.end());
print_vec(va); return ;
}
vector 的用法(c++)的更多相关文章
- c++中vector的用法详解
c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...
- STL中的Vector相关用法
STL中的Vector相关用法 标准库vector类型使用需要的头文件:#include <vector>. vector 是一个类模板,不是一种数据类型,vector<int> ...
- C++学习二 vector的用法(使用sort对于vector排序)
一.vector的介绍 vector是C++里面的一个容器,也是我们数学上面理解的向量,有一些比较常见的操作. 二.vector的定义 #include<vector> using nam ...
- STL vector常见用法详解
<算法笔记>中摘取 vector常见用法详解 1. vector的定义 vector<typename> name; //typename可以是任何基本类型,例如int, do ...
- POJ 1230 Pass-Muraille#贪心+vector迭代器用法
(- ̄▽ ̄)-* (注意下面代码中关于iterator的用法,此代码借鉴某大牛) #include<iostream> #include<cstdio> #include< ...
- C++:vector的用法详解
原文地址:http://blog.csdn.net/hancunai0017/article/details/7032383 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于 ...
- STL————vector的用法
一.什么是vector? 向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container).跟任意其它类型容器一样,它能够存放各种类型的对象.可以简单的认为,向量是一个能 ...
- C++序列容器之 vector常见用法总结
一.关于vector 本文默认读者具有一定的c++基础,故大致叙述,但保证代码正确. vector是一个动态的序列容器,相当于一个size可变的数组. 相比于数组,vector会消耗更多的内存以有效的 ...
- C++ STL(二)vector的用法
##### vector的定义 ```#include <iostream>#include <string>#include <vector>using name ...
- vector基本用法
Vector作为STL容器中的一员,使用频率非常高,因此对其基本用法和实用技巧进行记录,便于后期查询使用. 基本用法 #include <iostream> #include <ve ...
随机推荐
- EntityFramwork所有 SSDL 项目都必须以同一提供程序为目标。ProviderManifestToken“2008”不同于以前遇到的“2005”
再用spring+mvc+EF搭建框架时,出现这个问题,网上没有找到类似的问题,删除实体重建后莫名其妙的好了,2008指的是连得数据库实例是2008版本的,2005指的是2005版本,出现问题的原因是 ...
- label自适应
//label自适应 self.label = [UILabel new]; self.label.font = [UIFont systemFontOfSize:14]; NSString *tit ...
- C++ 学习之函数重载、基于const的重载
函数重载 函数重载的定义是:在相同的作用域中,如果函数具有相同名字而仅仅是形参表不同,此时成为函数重载.注意函数重载不能基于不同的返回值类型进行重载. 注意函数重载中的"形参表"不 ...
- Hibernate 系列教程14-继承-PerTable策略
Employee public class Employee { private Long id; private String name; HourlyEmployee public class H ...
- php des 加密类
<?php/** *@see Yii CSecurityManager; */class Des{ public static function encrypt($data,$key){ $mo ...
- 闭包 -> map / floatMap / filter / reduce 浅析
原创: 转载请注明出处 闭包是自包含的函数代码块,可以在代码中被传递和使用 闭包可以捕获和存储其所在上下文中任意常量和变量的引用.这就是所谓的闭合并包裹着这些常量和变量,俗称闭包.Swift 会为您管 ...
- js滚动条
/*滚动条在Y轴上的滚动距离*/function ScrollTop(){ var scrollTop = 0, bodyScrollTop = 0, documentScrollTop = 0; i ...
- A SPI class of type org.apache.lucene.codecs.PostingsFormat with name 'Lucene40' does not exist.
简单的建立索引和查询索引并不难,关键在于他的二次开发,让他适合你自己的需求 既然要二次开发就必须查看源码 首先看看索引过程中的核心类吧: IndexWriter 这个是核心组件, 建立和打开索引,以及 ...
- 将项目同时托管到Github和Git@OSC
http://my.oschina.net/GIIoOS/blog/404555?fromerr=KHvn8UKH 摘要 Github是最大的git代码托管平台,GIT@OSC是国内最大的git代码 ...
- ORACLE中CHAR、VARCHAR、NVARCHAR
1. char 固定长度,最长n个字符. 2. varchar 最大长度为n的可变字符串. (n为某一整数,不同数据库,最大长度n不同) char和varchar区别: ...