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 ...
随机推荐
- 解决win7和ubuntu双系统ubuntu不能上网的问题
1.电脑基本配置如下. 我的电脑 戴尔 OptiPlex 9020 Mini Tower操作系统 Windows 7 专业版 64位 SP1 Ubuntu 14.04 2.装系统的过程不再赘述. 可以 ...
- connectVisualVMtoTomcat
connectVisualVMtoTomcat 抱ラ花瘠 荬捻怵 鞅讣囚 骝珈 名诡氩 祉逦戳阜 骚须ⅳ 破竹的从骑士的肩甲出切了下去嚓 闼原 奇荛糠 社獭池 杨叔你养的这些望月螓 ...
- mongodb导出数据
导出 -d 数据库名 -u 用户名 -p 密码 -c 要导出的表名 -o 要到出的文件地址及类型 C:\Users\Administrator>mongoexport -d fh -u we ...
- QML Flipable、Flickable和状态与动画 下篇
本文介绍的是Flickable和状态与动画,我们以前接触过QML相关的内容,那么本文介绍的内容就很明了了.先来看内容. AD: Flickable和状态与动画 下篇是本节要介绍的内容,Flickabl ...
- Application的多种值判断测试程序
Application.Contents.Remove("FriendLink") Response.Write("Application.Contents.Remove ...
- iOS 10推送通知开发
原文地址:Developing Push Notifications for iOS 10,译者:李剑飞 虽然通知经常被过度使用,但是通知确实是一种获得用户关注和通知他们需要更新或行动的有效方式.iO ...
- 最简单易懂的webService客户端之soap+xml请求
代码准备: 1.网络上有提供一些免费的服务器测试地址,可以上这里找一找:https://my.oschina.net/CraneHe/blog/183471 2.我选择了一个翻译地址:http://w ...
- Android OpenGL ES(三)OpenGL ES API 命名习惯 .
OpenGL ES是个跨平台的3D图形开发包规范,最常见的实现是采用C语言实现的,Android OpenGL ES 实现上是使用Java 语言对底层的C接口进行了封装,因此在android.open ...
- RING0,RING1,RING2,RING3
Intel的CPU将特权级别分为4个级别:RING0,RING1,RING2,RING3.Windows只使用其中的两个级别RING0和RING3,RING0只给操作系统用,RING3谁都能用.如果普 ...
- mysql char varchar 区别
数据库建表 字符串字段类型的选择 char与varchar的区别: char 长度固定,char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空 ...