c++ STL(2)
Vector:
#include "stdafx.h"
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
vector<int> v = { ,,,,,, };
cout << "排序前的数组: ";
for (int elem : v) {
cout << elem << " "; //如何输出
}
cout << endl;
stable_sort(v.begin(), v.end()); //此排序方式为稳定排序,适用于v中有相同元素,如上面有2个66的情况,
//这样就不会改变两个66的相对位置。如果没有重复元素的话,用sort(v.begin(), v.end())方可
cout << "排序后的数组: ";
for (int elem : v) {
cout << elem << " "; //如何输出
}
cout << endl;
fill(v.begin()+, v.end(), ); //填充
cout << "此时的数组: ";
for (int elem : v) {
cout << elem << " "; //如何输出
}
cout << endl;
fill_n(v.begin(), , ); //填充的另一种方式
cout << "此时的数组: ";
for (int elem : v) {
cout << elem << " "; //如何输出
}
cout << endl;
return ;
}
对于上述输出方式的演变如下:现在用(3)即可
(1)
for_each (int elem in v)
{
cout << elem << " ";
}
(2)
for_each (v.begin(),v.end(),[](int elem)
{
cout << elem << " ";
}
(3)
for (int elem : v)
{
cout << elem << " ";
}
字符串大写变小写:
#include "stdafx.h"
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string s1 = "hello world.";
string s2;
transform(s1.begin(), s1.end(), s2.begin(), toupper); //同样大写变小写就是tolower
cout << s1 << endl;
}
二分查找:
#include "stdafx.h"
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
vector<int> v= { ,,,,,, };
if (binary_search(v.begin(), v.end(),))
cout << "Exits!" << endl;
else
cout << "Didn't exits!" << endl;
}
数列反转:
#include "stdafx.h"
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
vector<int> v= { ,,,,,, };
cout << "反转前的数列为: ";
for (int elem : v)
{
cout << elem << " ";
}
cout << endl;
reverse(v.begin(), v.end());
cout << "反转后的数列为: ";
for (int elem : v)
{
cout << elem << " ";
}
cout << endl;
return ;
}
条件分区:
#include "stdafx.h"
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
vector<int> v = { ,,,,,,,, };
stable_partition(v.begin(), v.end(), [](int elem)
{
return elem % == ;
});
for (int elem : v)
{
cout << elem << " ";
}
cout << endl;
return ;
}
运行结果:

c++ STL(2)的更多相关文章
- 详细解说 STL 排序(Sort)
0 前言: STL,为什么你必须掌握 对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算 ...
- STL标准模板库(简介)
标准模板库(STL,Standard Template Library)是C++标准库的重要组成部分,包含了诸多在计算机科学领域里所常见的基本数据结构和基本算法,为广大C++程序员提供了一个可扩展的应 ...
- STL的std::find和std::find_if
std::find是用来查找容器元素算法,但是它只能查找容器元素为基本数据类型,如果想要查找类类型,应该使用find_if. 小例子: #include "stdafx.h" #i ...
- STL: unordered_map 自定义键值使用
使用Windows下 RECT 类型做unordered_map 键值 1. Hash 函数 计算自定义类型的hash值. struct hash_RECT { size_t operator()(c ...
- C++ STL简述
前言 最近要找工作,免不得要有一番笔试,今年好像突然就都流行在线笔试了,真是搞的我一塌糊涂.有的公司呢,不支持Python,Java我也不会,C有些数据结构又有些复杂,所以是时候把STL再看一遍了-不 ...
- codevs 1285 二叉查找树STL基本用法
C++STL库的set就是一个二叉查找树,并且支持结构体. 在写结构体式的二叉查找树时,需要在结构体里面定义操作符 < ,因为需要比较. set经常会用到迭代器,这里说明一下迭代器:可以类似的把 ...
- STL bind1st bind2nd详解
STL bind1st bind2nd详解 先不要被吓到,其实这两个配接器很简单.首先,他们都在头文件<functional>中定义.其次,bind就是绑定的意思,而1st就代表fir ...
- STL sort 函数实现详解
作者:fengcc 原创作品 转载请注明出处 前几天阿里电话一面,被问到STL中sort函数的实现.以前没有仔细探究过,听人说是快速排序,于是回答说用快速排序实现的,但听电话另一端面试官的声音,感觉不 ...
- STL的使用
Vector:不定长数组 Vector是C++里的不定长数组,相比传统数组vector主要更灵活,便于节省空间,邻接表的实现等.而且它在STL中时间效率也很高效:几乎与数组不相上下. #include ...
- [C/C++] C/C++延伸学习系列之STL及Boost库概述
想要彻底搞懂C++是很难的,或许是不太现实的.但是不积硅步,无以至千里,所以抽时间来坚持学习一点,总结一点,多多锻炼几次,相信总有一天我们会变得"了解"C++. 1. C++标准库 ...
随机推荐
- 46-Identity MVC:登录逻辑实现
1- Login.cshtml <h3>Login</h3> @model MvcCookieAuthSample.ViewModel.LoginViewModel <d ...
- ORB-SLAM 代码笔记(三)tracking原理
ORB视觉里程计主体在tracking线程中
- itop-4412开发板学习-内核信号量
1. 翻翻书看下,linux提供两种信号量,内核信号量,由内核控制路径使用,System V IPC信号量,由用户态进程使用.下面的就是内核部分的信号量.内核信号量类似于自旋锁,当锁关闭着时,不允许内 ...
- Borland和Micorsoft的对话(转载自月光软件网)
Borland与Microsoft关于Delphi的对话 Bear 1.Delphi较贵 一套Delphi的价格大约相当于两套Visual Studio ------------------- ...
- 最后一片蓝海的终极狂欢-写在Win10发布前夕
作为一名Windows8.x+系统平台从业者,从工作伊始,耳边不断充斥着Windows将走向没落的言论,Win10今日晚些时候即将发布,笔者借此机会,说说自己的看法. 早在2012年的时候,IDC曾预 ...
- C++学习009预处理器指令符号 # ## #@ 符号的使用
# ## #@ 符号是预处理器指令符号. 当预处理器遇到#指令符号时,会将#之后的部分用双引号括起来 当预处理去遇到##指令符号时,直接将##前后部分连接起来 当预处理器遇到#@指令符号,将#@之后的 ...
- 深挖 NGUI 基础 之UICamera (二)
一.UI Camera作用 UICamera需要挂载在摄像机上才能发挥作用 UICamera仅负责 发送NGUI 事件 到 脚本所附加的摄像机中看得到的对象,比如我自定义了NGUI层(在Inspect ...
- golang交叉编译笔记
GOOS:目标平台的操作系统(darwin.freebsd.linux.windows) GOARCH:目标平台的体系架构(386.amd64.arm) Mac 下编译 Linux 和 Windows ...
- 输出1-n的全排(递归C++)
[问题描述] 输出1到n之间所有不重复的排列,即1到n的全排,要求所产生的任一数列不含有重复的数字. [代码展示] #include<iostream>using namespace st ...
- 多版本python import 问题解决方案
原文http://www.tuicool.com/articles/EnE7nm6 多版本Python共存[支持使用pip安装包] 有时特殊需要会要用到高版本的Python, 但是系统自带的版本又是很 ...