C++STL的简单使用
#include <iostream>
#include <vector>
#include<deque>
#include <list>
#include<algorithm>
#include<functional>//函数对象
#include<iterator>
//容器适配器 代理关系 功能子集
#include<stack>
#include <queue>
using namespace std;
vector<vector<int>> 二维数组
vector<list<int>>
//在容器里面重复多次删除
//用迭代器打印函数
template<typename Container>
void showContainer(Container &con)
{
Container::iterator it = con.begin();
for (;it != con.end();++it)
{
cout<<*it<<" ";
}
cout<<endl;
}
//使用库函数
int main()
{
//建立一个int实例化的vector;
vector<int> vec;
插入十个随机数
for (int i = 0;i<10;i++)
{
vec.push_back(rand()%100);
}
对vec里面的元素进行排序
sort(vec.begin(),vec.end());
sort(vec.begin(),vec.end(),less<int>());
showContainer(vec);
sort(vec.begin(),vec.end(),greater<int>());
showContainer(vec);
查找vec里面的元素,找到以后删除
vector<int>::iterator it = find(vec.begin(),vec.end(),64);
if (it != vec.end())
{
vec.erase(it);
}
查找vec里面的元素,找第一个比50大的元素,找到以后删除
vector<int>::iterator it1 = find_if(vec.begin(),vec.end(),bind1st(greater<int>(),50));
if (it1 != vec.end())
{
cout<<*it1<<endl;
vec.erase(it1);
}
//新建一个对象,将vec里面的拷贝给vec2,清除vec
vector<int> vec2;
copy(vec.begin(),vec.end(),back_inserter(vec2));
showContainer(vec2);
vec.clear();
showContainer(vec);
//插入100个个位数,删除重复值
for (int i = 0;i<100;i++)
{
vec.push_back(rand()%10);
}
showContainer(vec);
vector<int>::iterator it3 = unique(vec.begin(),vec.end());
showContainer(vec);
vec.erase(it3,vec.end());
showContainer(vec);
//在元素每个偶数前加-1
vector<int>::iterator it4 = vec.begin();
for (;it4!= vec.end();++it4)
{
if (*it4 % 2 == 0)
{
int val = -1;
it4 = vec.insert(it4,val);
++it4;
}
}
自己实现一下删除重复值,切记在容器里重复多次删除 迭代器会失效
vector<int>::iterator it3=vec.begin();
vector<int>::iterator it5;
for ( it3=vec.begin();it3!=vec.end();++it3)
{
it5=it3+1;
while(it5!=vec.end())
{
if (*it5 == *it3)
{
it5 = vec.erase(it3);
}
else
{
++it5;
}
}
}
C++STL的简单使用的更多相关文章
- 标准C++中的STL容器类简单介绍
SGI -- Silicon Graphics[Computer System] Inc.硅图[计算机系统]公司. STL -- Standard Template Library 标准模板库. ...
- STL vector简单用法
初涉c++,此为<算法笔记>中的内容,有待个人理解完善. vector vector翻译为向量,叫做"变长数组"更容易理解. 头文件:#include<vecto ...
- STL版本号简单介绍
说明:本文仅供学习交流.转载请标明出处.欢迎转载! 本文的參考文献为:<STL源代码剖析>侯捷 (1)HP STL:全部STL的祖先版本号,由C++之父Alexander S ...
- C++STL vector简单使用练习1
#include <iostream> #include <vector> #include <numeric> using namespace std; int ...
- STL map简单使用
#include <map> #include <iostream> //pair使用头文件iostream using namespace std; int main() { ...
- STL set简单用法
set的常见用法详解 set翻译为集合,是一个内部自动有序并且不含重复元素的容器. 可以用于去掉重复元素,或者元素过大,或者不能散列的情况,set只保留元素本身而不考虑它的个数. 头文件:#inclu ...
- 模板与STL学习简单的笔记
一.如何进行泛型编程 C/C++是一种静态编程语言,必须需要把代码翻译成可执行的二进制可执行程序然后再运行,一旦编译好之后就不能再变了(数据类型也就必须确定下无法更改,因此要为每一种数据类型编写一份算 ...
- C++中STL中简单的Vector的实现
该vector只能容纳标准库中string类, 直接上代码了,StrVec.h文件内容为: #ifndef STRVEC_H #define STRVEC_H #include<iostream ...
- Open Cascade Data Exchange STL
Open Cascade Data Exchange STL eryar@163.com 摘要Abstract:介绍了三维数据交换格式STL的组成,以及Open Cascade中对STL的读写.并将O ...
随机推荐
- ubuntu linux 设置环境变量
添加环境变量 1.添加临时变量 终端中输入: PATH="$PATH:yourpath" :yourpath是要添加的环境变量(即要添加目录的绝对路径,例:/home/myprog ...
- Java之英格玛简单实现以及加密验证码的应用
最近看了一部电影<模仿游戏>,<模仿游戏>中艾伦·图灵破译英格玛让我对英格玛产生了好奇,于是就开始翻阅资料对其进行研究,但是毕竟智慧有限,所以我这里用Java实现一个简单的英格 ...
- CSS3知识点整理(二)----CSS3选择器
总结各种CSS3选择器的介绍及具体语法 (一)属性选择器 在CSS2中引入了一些属性选择器,而CSS3在CSS2的基础上对属性选择器进行了扩展,新增了3个属性选择器,使得属性选择器有了通配符的概念,这 ...
- asp.net core mvc权限控制:在视图中控制操作权限
在asp.net core mvc中提供了权限验证框架,前面的文章中已经介绍了如何进行权限控制配置,权限配置好后,权限验证逻辑自动就会执行,但是在某些情况下,我们可能需要在代码里或者视图中通过手工方式 ...
- FMDB的简单用法
使用cocoaPods将FMDB下载到工程 第一步:引入框架,引入支持类库(libsqlite3.0.tbd) #import <FMDB.h> 声明属性 @interface ViewC ...
- 深入子元素的width与父元素的width关系
深入理解父元素与子元素的width关系 对于这一部分内容,如果理解准确,可以更容易控制布局,节省不必要的代码,这里将简单研究. 第一部分:父子元素都是内联元素 代码演示如下: <!DOCTYPE ...
- Android安卓身份证识别SDK
一.Android安卓身份证识别SDK应用背景 这些年,随着互联网金融的极速发展,第三方支付.理财.P2P网贷.征信等APP应用成爆发式的增长,在众多APP中都涉及到对身份证信息的录入,如第三方支付. ...
- Swift2.2 看完这篇博客 你不想懂也会懂得----二叉树
一:初衷 我自己也好奇,为什么莫名其妙的想起写这个,其实数据里面包含的结构和逻辑我自己觉得才是最原始经典的,最近也在学swift,就向着利用swift整理一些二叉树.自己刚开始的时候也是用OC看着别的 ...
- node.js爬虫杭州房产销售及数据可视化
现在年轻人到25岁+,总的要考虑买房结婚的问题,2016年的一波房价大涨,小伙伴们纷纷表示再也买不起上海的房产了,博主也得考虑考虑未来的发展了,思考了很久,决定去杭州工作.买房.定居.生活,之前去过很 ...
- Ext Js详解指南
什么是Ext JS 走进Ext的世界 Ext JS是一款富客户端开发框架它基于javascript.HTML和CSS开发而成,无需安装任何插件即可在常用浏览器中创建出绚丽的页面效果. 个人总结Ext ...