std常用类型
std::getline
文档

std::reverse
文档

注意事项
reverse()返回值为void,是对原序列进行修改
std::vector
文档

emplace 和 emplace_back
两者的区别仅为前者可以指定插入元素的位置,后者是直接插入到容器末尾
当调用push_back或insert成员函数时,是把元素类型的对象传递给它们,这些对象被拷贝到容器中(即需要调用一次拷贝构造函数)
但调用一个emplace系列函数时,则是将相应参数传递给元素类型的构造函数,直接构造出对象并插入到容器中,不需要调用拷贝构造函数
演示程序如下
#include <iostream>
#include <vector>
using namespace std;
class A {
public:
int x;
A() {
x = 0;
cout << "默认构造执行" << endl;
}
A(int x) {
this->x = x;
cout << "带参构造执行" << endl;
}
A(const A &a) {
this->x = a.x;
cout << "拷贝构造执行" << endl;
}
};
int main() {
vector<A> vec;
A a = A(1);
vec.push_back(a);
for (A &i : vec) cout << i.x << ' ';
return 0;
}
执行结果:

#include <iostream>
#include <vector>
using namespace std;
class A {
public:
int x;
A() {
x = 0;
cout << "默认构造执行" << endl;
}
A(int x) {
this->x = x;
cout << "带参构造执行" << endl;
}
A(const A &a) {
this->x = a.x;
cout << "拷贝构造执行" << endl;
}
};
int main() {
vector<A> vec;
vec.emplace_back(2);
for (A &i : vec) cout << i.x << ' ';
return 0;
}
执行结果

emplace系列函数的核心在于调用插入元素的构造函数,因此传入的值要符合构造函数的要求
std::next_permutation
文档

注意事项
- 是按照字典序递增的顺序进行排列的,需要关注初始序列
std::function
文档

用法
类似C语言中的函数指针
目前使用过的用法
vector中存放lambda表达式指明元素类型
auto op1 = [](int a, int b) -> int {return a + b;};
auto op2 = [](int a, int b) -> int {return a - b;};
auto op3 = [](int a, int b) -> int {return a ^ b;};
vector<function<int(int, int)>> ops = {op1, op2, op3};
一道例题,不使用lambda和vector相结合,就需要写三段重复度很高的代码
std::nth_element
官方文档
第二个参数的nth是指下标,例如带入0表示寻找下标为0,第1小的数值

示例程序
#include <iostream>
#include <algorithm>
using namespace std;
int k; // 第k+1小的元素,下标为k
int a[5] = {6, 1, 5, 2, 7};
int main()
{
cin >> k;
for (int i = 0; i < 5; ++ i) cout << a[i] << ' '; cout << endl;
nth_element(a, a + k, a + 5);
for (int i = 0; i < 5; ++ i) cout << a[i] << ' '; cout << endl;
printf("第%d小的数为%d,下标为%d\n", k + 1, a[k], k);
return 0;
}
输出结果

std常用类型的更多相关文章
- ashx中Response.ContentType的常用类型
ashx中Response.ContentType的常用类型: text/plaintext/htmltext/xmlapplication/jsonimage/GIFapplication/x-cd ...
- 【跟着子迟品 underscore】常用类型判断以及一些有用的工具方法
Why underscore 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. 阅读一些著名框架类库的源码,就好像和一个个大师对 ...
- MyBatis jdbcType常用类型
MyBatis jdbcType常用类型 jdbcType与javaType对应关系 javaType jdbctype CHAR String VARCHAR String LONGVARCHAR ...
- Underscore.js 常用类型判断以及一些有用的工具方法
1. 常用类型判断以及一些有用的工具方法 underscore.js 中一些 JavaScript 常用类型检查方法,以及一些工具类的判断方法. 首先我们先来谈一谈数组类型的判断.先贴出我自己封装好的 ...
- c++之 常用类型
C/C++常用类型的范围 C/C++里常用的类型及表示范围如下表所示: 类型 sizeof 表示范围 说明 char 1 -128 - 127 -2^7 - (2^7 - 1) short 2 -32 ...
- 04-MySQL的存储引擎和列的常用类型
1. MySQL中的数据库分类 2. MySQL中的存储引擎 MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并 ...
- 编译错误 error C2451: “std::_Unforced”类型的条件表达式是非法的
part 1 编译器 vs2015 VC++. 完整的错误信息粘贴如下: d:\program files (x86)\microsoft visual studio 14.0\vc\include\ ...
- C#用 catch 捕获异类的常用类型
C#用 catch 捕获异类的常用类型 最近在书上刚刚学到了try和catch用法,然后网上找了下常用的,自己存在这里方便自己查找 Exception 类 描述 SystemException 其他 ...
- DELPHI-Delphi常用类型及定义单元
DELPHI-Delphi常用类型及定义单元 Type Unit Date SysUtils DeleteFile SysUtils or Windows (different versions) D ...
- [转载]Delphi常用类型及定义单元
原文地址:Delphi常用类型及定义单元作者:沧海一声笑 Delphi常用类型及定义单元-总结 sndplaysound mmsystem Type Unit Date ...
随机推荐
- noi 1.5 36 计算多项式的值
描述 假定多项式的形式为xn+xn-1+-+x2+x+1,请计算给定单精度浮点数x和正整数n值的情况下这个多项式的值. 输入 输入仅一行,包括x和n,用单个空格隔开.x在float范围内,n < ...
- 1 Could not resolve XML resource [null] with public ID [null]
启动Tomcat报错: Java.io.FileNotFoundException: Could not resolve XML resource [null] with public ID [nul ...
- 【Operating System】——An interesting question on Process Creation
In the book Operating System Concepts- 9th Edition - Chapter 3 - Page 117 - Page 120 it says: How do ...
- QPushButton与Enter相链接
ui->pushButton_login->setFocus(); // 设置默认焦点 ui->pushButton_login->setShortcut(QKeySequen ...
- day01学习小记
# Markdown学习 ## 标题 ### 三级标题 #### 四级标题 ## 字体 Hellow,World! Hellow,world hellow,world! hellow,world ## ...
- 调用mglearn时的报错 TypeError: __init__() got an unexpected keyword argument 'cachedir'
import mglearn的时候发生的报错 原因是调用了joblib包中的memory类,但是cachedir这个参数已经弃用了 查到下面帖子之后改掉cachedir解决问题 https://blo ...
- ES5及ES6的新增特性
介绍 es表示ECMASCript ,他是从es3,es5,es6,es5是2009.12月发布的,es6是2015.6月发布的.vue2完全支持es5的(vue3完全支持es6的),react完全支 ...
- Bad Request - Invalid Hostname HTTP Error 400. The request hostname is invalid.
VS 调试 显示 如下错误 解决办法: 1 打开调试运行中的 IIS Express 2 点击其中一条记录 3 点击配置 4 找到对应项目站点 .添加 <binding protocol=&q ...
- 第七章 狄克斯特拉算法 (Dijkstra's algorithm)
步骤 找出最便宜的节点,即可在最短时间内前往的节点 对于该节点的的邻居,检查是否有前往他们的更短路径,如果有,就更新其开销 重复这个过程,知道对图中的每个节点都这样做了 计算最终路径 条件 只适用于有 ...
- 一次CentOS 出现“Too many open files"错误的解决
一.原因分析 出现本问题,应该是打开文件最多数量不足,默认是1024个,在生产环境中经常出现该问题. 使用ulimit -a 查看打开文件数量限制 二.解决方案A(临时有效) 1.如果是非root用户 ...