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 ...
随机推荐
- Flash、EEPROM、SRAM的区别与理解
Flash.EEPROM.SRAM的区别与理解1. Flash.EEPROM.SRAM的区别(1) Flash存储器Flash适用于速度要求高.容量要求大.掉电时要求数据不丢失的场合. (2) EEP ...
- 参与一个组织npm包的发布
1.github桌面提交新建一个fork 2.github网站打开fork,new 一个pull request 3.管理员审核成功 npm npm login npm publish --acces ...
- C#访问MySQL(一):连接查询删除(查删)
前言: 通过C#连接访问MySQL:连接查询. 1.项目添加MySQL引用: 2.获取数据库一个满足条件的值: public static object GetSingle2(string SQLSt ...
- MySQL中的json函数
json_valid 判断是否为合法json文档 json_unquote 去除json字符串的引号,将值转成string类型 json_extract 提取json值
- DevOps Gitlab环境部署
DevOps 介绍 目录 DevOps 介绍 一.DevOps 介绍 1.1.1 DevOps 介绍 1.1.2 CI/CD简介 1.1.2 Gitlab安装与使用 一.DevOps 介绍 1.1.1 ...
- 10 soundJs 初体验
最近想做一个h5的小游戏所以用上了soundjs. 还在开发中 http://www.hetenglife.com/mouse/game.html 刚刚把控制做完. 首先是要导入这个文件 <s ...
- 二叉树系列之Treap树
Treap是一棵拥有键值.优先级两种权值的树 struct node{ int size;//以这个结点为根的子树的结点总数量,用于名次树 int rank;//优先级 int key ...
- 【Android异常】关于静态注册BroadcastReceiver接收不到系统广播的问题
如果你静态注册的广播无法接收到消息,请先检查下:你的安卓版本是不是8.0+ 前言Google官方声明:Beginning with Android 8.0 (API level 26), the sy ...
- python 循环 类型转换
- 如果遇到This QueryDict instance is immutable错误
添加数据的时候,大家遇到"This QueryDict instance is immutable". 唯一的解决方法是request.data.copy()即可成功实现添加功能