Modern CPP之从从C++11到C++23
介绍现代C++特性
nudt_qxx
这个作者很懒,什么都没留下…
展开
-
在线运行C++的网站整理(持续更新)
1.https://godbolt.org/2.https://wandbox.org/原创 2022-01-05 10:01:52 · 8341 阅读 · 0 评论 -
从C++11到C++23(六)C++20利用contains查询map是否存在某个键
在C++20以前,如果map查询是否存在某个键,需要语法为1.使用map::find:if ( m.find(key) != m.end() ) { std::cout << "Found\n";} else { std::cout << "Not found\n";}2.使用count函数,使用下面三条任意一条判断语句即可:m.count(key) > 0m.count(key) == 1m.count(key) != 0区别:map和set两原创 2021-08-11 10:13:40 · 7935 阅读 · 0 评论 -
从C++11到C++23(五)C++20新增starts_with和ends_with用法
不得不说,C++20真是越来越接近Python语法。在Python中有两个函数分别是startswith()函数与endswith()函数,功能都十分相似,startswith()函数判断文本是否以某个或某几个字符开始,endswith()函数判断文本是否以某个或某几个字符结束。例如>>> s = "hello world">>> s.startswith("h")True>>> s.startswith("he")True>>原创 2021-08-10 20:13:29 · 4052 阅读 · 3 评论 -
从C++11到C++23(四)统计某个数目中1的个数
代码链接见:https://wandbox.org/permlink/sIdpRyLe4utkecEqC++20提供了一个新的 <bit> 头文件用于提供一些位运算,其中popcount可用于统计一个数目中1的个数。如果你想统计一个2/8/16进制数目中1的个数,这个函数就非常方便了:#include <bit>#include <bitset>#include <cstdint>#include <initializer_list>原创 2020-06-30 23:13:10 · 794 阅读 · 0 评论 -
从C++11到C++23(三)常量表达式修饰虚函数constexpr virtual functions
代码链接见:https://wandbox.org/permlink/ksQk5KCf4K5ChUe0constexpr(常量表达式)是为了解决C++历史遗留问题,它一种比const 更严格的束缚, 它规定了表达式本身在编译期间可知。简单来说,const其实是readonly(只读),而constexpr才是const(常量)。二者更多区别见:知乎:C++ const 和 constexpr 的...原创 2020-04-30 10:25:09 · 1148 阅读 · 0 评论 -
从C++11到C++23(一) C++20圆周率、常数e和常见对数
代码连接见:https://wandbox.org/permlink/qaUjQb3Ud0SGqRhpC++20中圆周率和常数e已经进入std了,无需math头文件:// gcc >=10,// g++ test.cpp -Wall -Wextra -std=c++2a#include <iostream>#include <numbers> //加这个头...原创 2020-04-29 14:59:55 · 1810 阅读 · 0 评论 -
从C++11到C++23(二)C++20的for循环
代码链接见:https://wandbox.org/permlink/Ex03u0X4YB8zYfpyC++20的for循环遍历,优雅到爆:#include <iostream>#include <vector>using namespace std;int main(){ for (std::vector v{1, 2, 3}; auto& ...原创 2020-04-29 15:09:17 · 2210 阅读 · 1 评论