vector基础
//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基础的更多相关文章
- vector基础操作
//vector< T> vec; //构造一个名为vec的储存数据类型为T的动态数组.其中T为需要储存的数据类型 //初始时vec为空 //push_back 末尾添加一个元素 //po ...
- vector 基础2
size :返回有效元素个数 max_size :返回 vector 支持的最大元素个数 resize :改变有效元素的个数 capacity :返回当前可使用的最大元素内存块数(即存储容量) ...
- vector 基础
http://classfoo.com/ccby/article/jnevK Vector的存储空间是连续的,list不是连续存储的 vector初始化 vector<int>v; //不 ...
- 66)vector基础总结
基本知识: 1)vector 样子 其实就是一个动态数组: 2)vector的基本操作: 3)vector对象的默认构造 对于类 添加到 容器中 要有 拷贝构造函数---> 这个注意 ...
- Android Vector曲折的兼容之路
Android Vector曲折的兼容之路 两年前写书的时候,就在研究Android L提出的Vector,可研究下来发现,完全不具备兼容性,相信这也是它没有被广泛使用的一个原因,经过Google的不 ...
- java数据结构-Vector
1 Vector基础实现为数组 object[] synchronized线程安全 2 扩容使用 System.arraycopy(original, 0, copy, 0,Math.min(ori ...
- C++【vector】用法和例子
/*** * vector 基础api复习 * 8 AUG 2018 */ #include <iostream> #include <vector> using namesp ...
- Faster-RCNN tensorflow 程序细节
tf-faster-rcnn github:https://github.com/endernewton/tf-faster-rcnn backbone,例如vgg,conv层不改变feature大小 ...
- [Java] 集合框架原理之一:基本结构与源码分析
一.Collection Collection 接口定义了一些基本的方法: int size(); boolean isEmpty(); boolean add(E e); boolean addAl ...
随机推荐
- UVA 11922 Permutation Transformer(平衡二叉树)
Description Write a program to transform the permutation 1, 2, 3,..., n according to m instructions. ...
- canvas学习(一):线条,图像变换和状态保存
canvas学习(一):线条,图像变换和状态保存 一:绘制一条线段: var canvas = document.getElementById('canvas') var ctx = canvas.g ...
- lintcode-173-链表插入排序
173-链表插入排序 用插入排序对链表排序 样例 Given 1->3->2->0->null, return 0->1->2->3->null 标签 ...
- Swift-map()跟flatMap()区别
map()方法介绍 map() 是 Array 提供的方法,通过接收一个函数作为传入参数,对数组中每个元素进行函数变换得到新的结果值.这样只需要提供 X->Y 的映射关系,就能将数组 [X ...
- css那些事儿2 经典两列布局
<!DOCTYPE html> <html> <head> <title></title> <link rel="style ...
- Qt语言家(Qt Linguist)更新翻译报错-Qt5.9-MinGW
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt语言家(Qt Linguist)更新翻译报错-Qt5.9-MinGW 本文地址:h ...
- js移动端滑块验证解锁组件
本文修改自PC端的js滑块验证组件,PC端使用的是onmousedown,onmouseup,nomousemove.原文找不到了,也是博客园文章,在此感谢广大网友的生产力吧. 说下对插件和组件的理解 ...
- vue-cli项目里npm安装使用elementUI
第一步:进入到项目目录里 npm i element-ui -S 第二步:在main.js中引入 import ElementUI from 'element-ui' import 'element- ...
- 解决爬虫浏览器中General显示 Status Code:304 NOT MODIFIED,而在requests请求时出现403被拦截的情况。
在此,非常感谢 “完美风暴4” 的无私共享经验的精神 在Python爬虫爬取网站时,莫名遇到 浏览器中General显示 Status Code: 304 NOT MODIFIED 而在req ...
- PL/SQL在 win8.1系统下连接Oracle11g没有database处理方法(亲身实验,吐血分享)
一.问题 这里首先说明下我的环境:win8.1(64bit)+oracle11g(64bit)+PL/SQL(32bit).状况是:net manager正常配置,测试也成功,但是用PL/SQL连接的 ...