//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. ThinkPHP - 4 - 学习笔记(2015.4.12)

    ThinkPHP D方法 D方法用于实例化自定义模型类,是ThinkPHP框架对Model类实例化的一种封装,并实现了单例模式,支持跨项目和分组调用,调用格式如下:D('[项目://][分组/]模型' ...

  2. 业务迁移---web

    #本文是做记录使用,不做为任何参考文档# 迁移代码 将源代码scp至新的server上 搭建服务 yum安装nginx服务 yum install nginx #yum安装 service nginx ...

  3. 静态类型&动态类型

    何时使用:使用存在继承关系的类型时,必须将一个变量或其他表达式的静态类型与该表达式表示对象的动态类型区分开来 静态类型:表达式的静态类型在编译时总是已知的,它是变量声明时的类型或表达式生成的类型 动态 ...

  4. mysql分页的limit优化

    1.很多新人都会很纳闷,为什么我建了索引使用分页还是这么卡.好,现在让我们一步一步去找原因吧. 首先limit本身跟索引没有直接关系. 先建一张商品sku表 create table goods_sk ...

  5. RabbitMQ基本模式

    最近用到了一些RabbitMQ的东西,看了官方的Get Started,以此为模板总结一下. (1)生产者(发送方)发送消息到ExChange(含参:routingkey),ExChange通过bin ...

  6. 福大软工1816:Alpha(5/10)

    Alpha 冲刺 (5/10) 队名:第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬(组长) 过去两天完成了哪些任务: 文字/口头描述: 1.忙于复习,本次无成果 展示 ...

  7. 在LaTex中插入电路图的方法(插入图片)

    主要的需求是要在文档中插入电路图. 有两种方法,一种是直接在LaTex中绘制电路图,使用的库主要是circ和circuitikz 另一种是在其他软件上绘制电路图,转成特定图像格式后,在Latex中插入 ...

  8. lintcode-181-将整数A转换为B

    181-将整数A转换为B 如果要将整数A转换为B,需要改变多少个bit位? 注意事项 Both n and m are 32-bit integers. 样例 如把31转换为14,需要改变2个bit位 ...

  9. iOS-创建UIScrollerView(封装UIScrollerView)

    创建继承于UIView的类WJImageScrollView,代码实现如下: WJImageScrollView.h #import <UIKit/UIKit.h> /**点击图片bloc ...

  10. 关于c中的一些新函数

    localtime 和 localtime_s: localtime:localtime(const time_t * _Time) time_t t;struct tm *local;time(&a ...