![](https://img-blog.csdnimg.cn/20210309205513334.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++ 零散知识
文章平均质量分 62
平时学习回顾 C++ 时的知识点
SmileGuy17
这个作者很懒,什么都没留下…
展开
-
关于 C++ 中地址值打印出来为1或0的情况(主要是与 volatile* 有关)
C++原创 2022-06-10 21:27:31 · 677 阅读 · 0 评论 -
关于 GNU 的 STL 版本更替
GNU原创 2022-06-06 11:49:56 · 422 阅读 · 0 评论 -
关于cppreference的内置数组下标的要求
可以看出,当使用内置下标运算符访问数组中的元素时,用于表示下标的表达式必须是无作用域枚举或整型类型的纯右值。而C++入门时学到的 for 循环遍历查看内置数组中时,使用左值作为内置下标运算符的操作对象。int a[10] = {0};// i 是左值for(int i = 0; i < 10; i++){ std::cout << a[i] << std:endl;}这里通过左值到右值的转换,可以将任何非函数、非数组类型的泛左值隐式转换为纯右值。..原创 2022-04-21 22:54:55 · 783 阅读 · 0 评论 -
关于C++的具体实现和C++标准要求的区别
在前几天阅读了cppreference上关于bitset的有关知识,我注意到在cppreference/bitset中, bitset 的数据结构并没有用于保存位模式副本的数据成员。而在其它的一些资料中显式, bitset 是继承自_Base_bitset的,并在 _Base_bitset 中设计一个unsigned long数组用于保存位模式副本。那么cppreference是否省略了这种继承关系? 答案是没有。std::bitset可以在 C++ 标准的22.9 Utilities.bits原创 2022-03-22 10:15:05 · 1030 阅读 · 0 评论 -
C++关于 lambda 表达式包含多条返回语句的问题
起因在《C++ Primer 5th》中10.3.3节中提到一下例子://错误:不能推断lambda的返回类型transform (vi.begin(), vi.end(), vi.begin(), [](int i){ if (i< 0) return -i; else return i; });并表示:但是,如果我们将程序改写为看起来是等价的 if 语句,就会产生编译错误。编译器推断这个版本的 lambda 返回类型为 void ,但它实际上返回了一个 int 值。解决过程在转载 2022-02-21 10:46:11 · 454 阅读 · 0 评论 -
记C++中静态常量数据成员在不同标准下的一些区别
Note: 在C++中,class类型的静态常量数据成员分为两种:static const的和static constexpr的。若整型或枚举类型的静态数据成员被声明为 const(且非 volatile ),则它能以身为常量表达式的类内初始值,直接在类定义内初始化,这不是必须的,也可以在类外初始化:struct X{ const static int n = 1; static const int m{2}; // C++11 起 const static int k;原创 2022-01-28 23:51:45 · 660 阅读 · 0 评论 -
C++ 中 struct 和 class 的区别
C++ 中 struct 和 class 的区别结构体和类的区别就是 :使用 class 时,类中的成员默认都是 private ;而使用 struct 时,结构体中的成员默认都是 public ;class 继承默认是 private 继承,而 struct 继承默认是 public 继承;class 可以使用模板,而 struct 不能类中,对于未指定访问控制属性的成员,其访问控制属性为私有类型(private)结构体中,对于未指定任何访问控制属性的成员,其访问控制属性为公有类型(pu原创 2021-03-09 21:02:03 · 206 阅读 · 0 评论