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 ...
随机推荐
- RTSP配置海康相机视频
RTSP:即时串流协定(Real Time Streaming Protocol,RTSP)是用来控制声音或影像的多媒体串流协议,并允许同时多个串流需求控制. 1.获取海康相机ip地址 (1).下载海 ...
- hive:使用concat_ws实现 array转string案例
concat_ws(',',collect_set(if(step_name <> '',step_name,null))) AS step_names,
- 【已解决】robotframework 连接oracle数据库返回结果中文显示乱码
问题描述:查询数据库返回信息有中文的时候会显示unicode的样式,如图: 环境:robotframework 3.0.x 解决方法: 找到Python安装目录下的\Lib\site-packages ...
- Educational Codeforces Round 2 个人总结A-E
Educational Codeforces Round 2 A. Extract Numbers 简单的模拟 bool check(string op) { if(op.size()==1& ...
- 蓝桥2020 B组 第一场考试
2. 纪念日 问题描述: 请问从 1921 年 7 月 23 日中午 12 时到 2020 年 7 月 1 日中午 12 时一共包 含多少分钟? 答案提交: 这是一道结果填空题,你只需要算出结果后提交 ...
- 记一次因为关键字OUT 导致的后台"sql injection violation" 报错的问题
在navicat和mssm中执行用字段别名'out'均没有问题,但是在mybatis里使用就会报 "sql injection violation, syntax error: ERROR. ...
- Linux_Shell脚本
Shell脚本 shell基础 shell变量 shell扩展 shell基础 shell简介 1.什么是shell? shell是一种命令解释器 shell也是一种编程语言 shell,python ...
- JAVA 作业
1.让用户分2次输入2个整数,输出2个数的最大值,最小值 import java.util.Scanner;class Demo01 { public static void main(String[ ...
- 模拟实现call,apply,bind方法,以及三者区别
// 模拟实现call方法 Function.prototype.call2 = function (context) { var context = context || window; conte ...
- heimaJava17
java IO流 缓冲流 概念 缓存流也称为高效流.或者高级流.之前学习的字节流也可以称为原始流 作用:缓冲流自带缓冲区.可以提高原始字节流.字符流读写数据的性能 分类 字节缓冲流 字节缓冲输入流:B ...