//STL基础
//容器
//vector #include "iostream"
#include "cstdio"
#include "vector"//向量
#include "iterator"//迭代器
#include "numeric"//accunulate()求和算法需要
#include "algorithm"//reverse()
using namespace std; bool cmp(const int a,const int b)
{
return a>b;//或a-b
} int main()
{
//创建vector对象
vector<int> v1;//为空
vector<int>v2();//初始长度为10,默认为10个0
vector<double>v3(,8.6);//初始化前10个数为8.6
vector<double>v4(v3);//v4是v3的一个副本 //尾部添加元素
v3.push_back(8.6); //获取向量长度的方法
int size03=v3.size();
cout<<size03<<endl; //下标访问法
for(int i=;i<size03;i++){
cout<<v3[i]<<" ";
}
cout<<endl;
//迭代器访问法
vector<double>::iterator it;//定义一迭代器
for(it=v3.begin();it!=v3.end();it++){//v3.begin()为v3这个向量第一个元素的地址,
// v3.end()为最后一个元素的后一个地址
cout<<(*it)<<" "; //注意.begin()为向量获取首元素地址的方法,括号不可忘
}
cout<<endl; //求和算法,accumulate() 头文件 #include "algorithm"返回值为整型,前两个参数为指针(前闭后开区间),
//第三个参数a,为在区间元素和的基础上+a,不可省
int sum02=accumulate(v2.begin(),v2.end(),);
cout<<sum02<<endl; //vector元素的插入
v3.insert(v3.begin(),);//在第0个元素前插入8,8成为第0个元素
v3.insert(v3.begin()+,);//在第2个元素前插入1,1成为第2个元素
v3.insert(v3.end(),);//在向量末尾追加8
v3.insert(v3.end()-,);//在第1个元素前插入99,99成为第2个元素
//注意这种会出错,内存越界 v3.insert(v3.end()+1,99); //vector元素的删除
v3.erase(v3.begin()+);//s删除下表为2 即第三个元素
v3.erase(v3.begin()+,v3.begin()+);//删除一段 删除2个(下标为3和4),(参数前闭后开) v3.clear();//清空向量,长度为0 //vector元素反向排序
//reverse()反向排列算法 头文件#include "algorithm"
//可使向量中某段迭代器区间反向排列
vector<int>v;
reverse(v.begin(),v.end()); //sort()算法,对vector内元素排序 #include "algorithm"
sort(v.begin(),v.end());//默认升序 //若要降序
//法一
/*bool cmp(const int a,const int b)
{
return a>b;//或a-b
}*/
sort(v.begin(),v.end(),cmp);
//法二
sort(v.rbegin(),v.rend());
//法三
sort(v.begin(),v.end(),greater<int>()); //vector 去重 只去相邻的重的,所以常先排序在操作
//unique() #include "iostream"
int size=unique(v.begin(),v.end())-v.begin();//因为并不把重复的元素真正删除,
//而是放于后面,返回去重后最后一个元素首地址 //vector判断是否为空
v.empty(); }

vector基础的更多相关文章

  1. vector基础操作

    //vector< T> vec; //构造一个名为vec的储存数据类型为T的动态数组.其中T为需要储存的数据类型 //初始时vec为空 //push_back 末尾添加一个元素 //po ...

  2. vector 基础2

    size  :返回有效元素个数 max_size  :返回 vector 支持的最大元素个数 resize  :改变有效元素的个数 capacity  :返回当前可使用的最大元素内存块数(即存储容量) ...

  3. vector 基础

    http://classfoo.com/ccby/article/jnevK Vector的存储空间是连续的,list不是连续存储的 vector初始化 vector<int>v; //不 ...

  4. 66)vector基础总结

    基本知识: 1)vector 样子  其实就是一个动态数组: 2)vector的基本操作: 3)vector对象的默认构造 对于类  添加到  容器中  要有  拷贝构造函数---> 这个注意 ...

  5. Android Vector曲折的兼容之路

    Android Vector曲折的兼容之路 两年前写书的时候,就在研究Android L提出的Vector,可研究下来发现,完全不具备兼容性,相信这也是它没有被广泛使用的一个原因,经过Google的不 ...

  6. java数据结构-Vector

    1 Vector基础实现为数组 object[] synchronized线程安全 2 扩容使用  System.arraycopy(original, 0, copy, 0,Math.min(ori ...

  7. C++【vector】用法和例子

    /*** * vector 基础api复习 * 8 AUG 2018 */ #include <iostream> #include <vector> using namesp ...

  8. Faster-RCNN tensorflow 程序细节

    tf-faster-rcnn github:https://github.com/endernewton/tf-faster-rcnn backbone,例如vgg,conv层不改变feature大小 ...

  9. [Java] 集合框架原理之一:基本结构与源码分析

    一.Collection Collection 接口定义了一些基本的方法: int size(); boolean isEmpty(); boolean add(E e); boolean addAl ...

随机推荐

  1. vs2008 c#项目调试dll源码,问题:“若要调试此模块,请将其项目生成配置更改为“调试”模式” 的解决方案

    情况: 1:有程序 Trans.exe 的vs2008 c#源码:Trans.exe项目里引用了 Water.dll: 2:有Water.dll的项目源码: 3:想在Trans.exe里调试Water ...

  2. js随机数算法

    function rnd( seed ){ seed = ( seed * 9301 + 49297 ) % 233280; //为何使用这三个数? return seed / ( 233280.0 ...

  3. 20145214 《Java程序设计》第6周学习总结

    20145214 <Java程序设计>第6周学习总结 教材学习内容总结 串流设计 Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象. 输入串流代表对象为java. ...

  4. Java版office文档在线预览

    java将office文档pdf文档转换成swf文件在线预览 第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux ...

  5. Windows Server 2012四大版本介绍

    今天刚好要尝试安装Windows Server 2012,在网上百度了下发现有4个版本,分别是: Datacenter数据中心版. Standard标准版. Essentials版. Foundati ...

  6. 从大量的IP访问记录中找到访问次数最多的IP

    1.内存不受限 一个IP有32bit(4Byte),1GB=10亿,那么在4GB内存的情况下,可以存10亿个IP.用HashMap,边存入IP边维护一个最大次数,这样遍历一遍就可以求出,时间复杂度为O ...

  7. Go语言【第十篇】:Go数据结构之:指针

    Go语言指针 Go语言中指针是很容易学习的,Go语言中使用指针可以更简单的执行一些任务.我们都知道变量是一种使用方便的占位符,用于引用计算机内存地址.Go语言的取地址符是 &,放到一个变量前使 ...

  8. 生成模型(Generative Model)Vs 判别模型(Discriminative Model)

      概率图分为有向图(bayesian network)与无向图(markov random filed).在概率图上可以建立生成模型或判别模型.有向图多为生成模型,无向图多为判别模型. 判别模型(D ...

  9. 【题解】Atcoder ARC#67 F-Yakiniku Restaurants

    觉得我的解法好简单,好优美啊QAQ 首先想想暴力怎么办.暴力的话,我们就枚举左右端点,然后显然每张购物券都取最大的值.这样的复杂度是 \(O(n ^{2} m)\) 的.但是这样明显能够感觉到我们重复 ...

  10. [BZOJ3380] [USACO2004 Open]Cave Cows 1 洞穴里的牛之一

    Description ​ 很少人知道其实奶牛非常喜欢到洞穴里面去探险. ​ 洞窟里有N(1≤N≤100)个洞室,由M(1≤M≤1000)条双向通道连接着它们.每对洞室间 至多只有一条双向通道.有K( ...