c++17 代码你能看懂吗?
------------------------------------------------------------------------------
#include <vector>
#include <algorithm>
#include <random> int main()
{
std::vector<int> a{, , , , , , , , , , };
std::vector<int> b(); std::sample(a.begin(), a.end(),
b.begin(), b.size(),
std::mt19937{std::random_device{}()});
return ;
}
------------------------------------------------------------------------------
#include <iostream>
#include <string> int main()
{
const std::string myString = "Hello World"; // C++17 with init if:
if (const auto it = myString.find("Hello"); it != std::string::npos)
std::cout << it << " Hello\n"; if (const auto it = myString.find("World"); it != std::string::npos)
std::cout << it << " World\n";
}
------------------------------------------------------------------------------
#include <iostream>
#include <string> using namespace std; template<typename ...Args> auto sum(Args ...args)
{
return (args + ... + );
} template<typename ...Args> auto sum2(Args ...args)
{
return (args + ...);
} int main()
{
cout << sum(, , , , , , ) << "\n";
cout << sum2(, , , , , , ) << "\n";
}
------------------------------------------------------------------------------
#include <utility>
#include <tuple>
#include <iostream> int main() {
std::pair d(, 0.0);
std::tuple t(, , ); std::cout << std::get<>(t) << ", " << std::get<>(t) << ", " << std::get<>(t) << "\n";
}
------------------------------------------------------------------------------
#include <iostream>
#include <string> struct S
{
int n;
std::string s;
float d;
}; template <std::size_t I>
auto& get(S& s)
{
if constexpr (I == )
return s.n;
else if constexpr (I == )
return s.s;
else if constexpr (I == )
return s.d;
} int main()
{
S obj { , "hello", 10.0f };
std::cout << get<>(obj) << ", " << get<>(obj) << "\n";
}
------------------------------------------------------------------------------
https://www.codingame.com/playgrounds/2205/7-features-of-c17-that-will-simplify-your-code/introduction
------------------------------------------------------------------------------
c++17 代码你能看懂吗?的更多相关文章
- 最近老是有兄弟问我,Vue双向绑定的原理,以及简单的原生js写出来实现,我就来一个最简单的双向绑定,原生十行代码让你看懂原理
废话不多说直接看效果图 代码很好理解,但是在看代码之前需要知道Vue双向绑定的原理其实就是基于Object.defineProperty 实现的双向绑定 官方传送门 这里我们用官方的话来说Object ...
- Holding Bin-Laden Captive!(hdoj1085)代码并未完全看懂
We all know that Bin-Laden is a notorious terrorist, and he has disappeared for a long time. But rec ...
- C语言-人狼羊菜问题-最容易看懂的解决方法及代码
题目描述:农夫需要把狼.羊.菜和自己运到河对岸去,只有农夫能够划船,而且船比较小,除农夫之外每次只能运一种东西,还有一个棘手问题,就是如果没有农夫看着,羊会偷吃菜,狼会吃羊.请考虑一种方法,让农夫能够 ...
- 写在最前面 - 《看懂每一行代码 - kubernetes》
我要写什么 <看懂每一行代码 - kubernetes>会包含k8s整个项目的源码解析,考虑到门槛问题,在开始分析k8s之前我会通过一些更低难度的golang开源项目讲解来帮助大家提升go ...
- T4代码生成脚本从添加注释,添加命名空间开始(一款强大的代码生成工具从看懂脚本,到随心所欲的玩弄代码,本文只是T4的冰山一角,博主将不断深入探索并完善该文章)
精通T4脚本要从读懂脚本的关键代码片段开始 1.1. 给类添加注释-->看懂类对应的代码:<#=codeStringGenerator.EntityClassOpening(entity ...
- 从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码
首发于公众号:计算机视觉life 旗下知识星球「从零开始学习SLAM」 这可能是最清晰讲解g2o代码框架的文章 理解图优化,一步步带你看懂g2o框架 小白:师兄师兄,最近我在看SLAM的优化算法,有种 ...
- 一文看懂Stacking!(含Python代码)
一文看懂Stacking!(含Python代码) https://mp.weixin.qq.com/s/faQNTGgBZdZyyZscdhjwUQ
- 小白学习VUE第一篇文章---如何看懂网上搜索到的VUE代码或文章---使用VUE的三种模式:
小白学习VUE第一篇文章---如何看懂网上搜索到的VUE代码或文章---使用VUE的三种模式: 直接引用VUE; 将vue.js下载到本地后本目录下使用; 安装Node环境下使用; ant-desig ...
- 127个常用的JS代码片段,每段代码花30秒就能看懂(上)
127个常用的JS代码片段,每段代码花30秒就能看懂(上) JavaScript 是目前最流行的编程语言之一,正如大多数人所说:“如果你想学一门编程语言,请学JavaScript.” FreeCode ...
随机推荐
- [题解]图的m着色问题
图的m着色问题(color) [题目描述] 给定无向连通图G和m种不同的颜色.用这些颜色为图G的各顶点着色,每个顶点着一种颜色.如果有一种着色法使G中每条边的2个顶点着不同颜色,则称这个图是m可着色的 ...
- pycharm 安装dilb模块
- vue学习初探
一.环境的搭建安装 VS Code vue开发环境的搭建 理解vue的脚手架 合适的cnpm版本
- C#创建安装、卸载部署程序
分享3: 需求:对已经开发的应用程序进行安装封装操作,即创建安装.卸载部署程序: 分析:程序的开发是为了在不同的人在不同的机器上使用,为了使不同机器使用该软件就需要见程序安装包,并且保证安装包中必须包 ...
- 【git】git hello world
以前不怎么会用. http://blog.sina.com.cn/s/blog_1485511700102xdig.html git add 文件夹/ 添加整个文件夹及内容 gi ...
- Flutter自定义路由PageRouteBuilder
自定义路由翻转,渐变,左右滑动 方法如下: 首先继承 PageRouteBuilder ,重写方法 将MaterialPageRoute改为showSearch import 'package:flu ...
- Python 安装 (win10)
1. 下载python 网址: python.org 版本: 2.7 安装包名字: Windows x86-64 MSI installer 一路next. 2. 配置环境变量: path 里面添加p ...
- Python2和Python3安装教程
当同时安装Python2和Python3后,如何兼容并切换使用详解(比如pip使用) python成了2.7而py成了3.7,呵呵! 当同时安装Python2和Python3后,如何兼容并切换使用详解 ...
- Logback日志基础配置以及自定义配置
Logback日志基础配置 logback日志配置有很多介绍,但是有几个非常基础的,容易忽略的.下面是最简单的一个配置,注意加粗的描述 <?xml version="1.0" ...
- yii2 使用指定数据库执行createCommand
Yii::$app->dbName->createCommand($sql)->queryAll(); 指定dbName数据库配置