c++
文章平均质量分 65
小黑屋1024
这个作者很懒,什么都没留下…
展开
-
7.2 C++11默认函数的控制
这里对于explicit ConvType(char c)函数而言,意味着拒绝从字符char隐式转换为ConvType类型,因此 Func('a');显示缺省,对于默认生成的函数而言,并不是默认所有都会生成,而是在需要时才会生成。而且当用户自己实现其中的某个函数时,编译器就会移除相应的默认函数,这样就会导致类变得不是POD了。C++11提供了=default关键字,用于默认函数定义之后,表示要求编译器生成对应的默认函数,从而确保类的POD。除了在类内指定default外,也可以在类外指定,原创 2023-12-08 09:34:13 · 58 阅读 · 0 评论 -
7.1 C++11指针空值—nullptr
【代码】7.1 C++11指针空值—nullptr。原创 2023-12-08 09:33:24 · 122 阅读 · 0 评论 -
C++11 智能指针
接口作用构造函数。创建一个auto_ptr对象,并管理指针_Ptr的释放析构函数。释放管理的指针_Myptr重载*操作符获取当前 auto_ptr 指针指向的数据。重载 ->操作符,当智能指针指向非基础类型时,通过 -> 运算符可以获取其内部的指定成员。重载 = 操作符,从而将一个相同类型指针的auto_ptr赋值给当前auto_ptr,当前auto_ptr获得指针的所有权。get()获取当前 auto_ptr 指针内部包含的普通指针。release()原创 2023-12-07 15:30:53 · 331 阅读 · 0 评论 -
8.3 C++11对Unicode的支持
在C++98中,引入wchar_t对Unicode支持,但是后来由于不同平台下wchar_t的宽度并不相同(8,16,32位),导致可移植性受到影响。此外,对于多个连续声明的字符串常量,只要有一个有前缀,则编译器会将这些连续的字符串常量都以此前缀处理。(实际上vs2017并不允许)通常情况下,对于连续的字符串常量,C++会要求编译器将其连起来,比如"a" "b"和"ab"没有区别。以上三种,再加上wchar_t格式的L以及不带前缀的字符串,C++11则包含了5种字符串常量的前缀。原创 2023-12-07 15:20:37 · 275 阅读 · 0 评论 -
8.1 C++11对齐支持
很显然,这样在push_back时,将一个对齐值为32的ColorVector塞到对齐值只有1的arrCV.data中,可能会导致一些性能上的丢失(虽然这里我实验了一下也没有什么区别~~~)代码中成员a占1个字节,成员b占4字节,而通过offsetof(用于获取成员变量在类中的偏移量),查看a,b成员位置时,b的位置为4而不是1,这是因为C/C++对数据结构有着对齐要求。内存对齐是一个整数,意味着该数据成员地址只能位于内存对齐的倍数上,如b位于4而非1。原创 2023-12-07 15:18:57 · 135 阅读 · 0 评论 -
C++单例模式总结
单例模式的实现步骤实现步骤1.首先你得有个类2.将构造、拷贝构造、赋值运算符私有化(如果用不到可以将拷贝构造和赋值运算符只声明不定义)3.提供唯一的类实例对象。4.对外提供获取实例唯一接口。实现样例browser.hclass Browser{public: static Browser *getInstance(); ~Browser();private: Browser(); Browser(const Browser &.原创 2021-11-01 20:14:06 · 42 阅读 · 0 评论 -
unicode-utf8转换
unicode2Utf8函数将unicode值转为对应的utf8编码的字符串。utf82Unicode函数将utf8编码的字符串转为unicode值。两个函数性能都经过测试验证,目前是我能够优化的极限。两者的转换原理则依据下表(详情参考。Unicode码位范围。utf-8编码二进制。原创 2023-06-27 20:01:02 · 827 阅读 · 0 评论 -
EasyString类(切分utf8编码的string)
EasyString类主要功能是将utf8编码的std::string切分,使得能够统计字符数(通过size函数)并能获取到各字符内容(通过at函数)。QString用多了之后真心觉得std::string太原始。刚好有个切分utf8字符串的需求,所以简单封装了一个字符串类。核心函数为utf8TextLen函数,计算当前字符占几个字节,从而进行切分。其中使用了两种计算方式,性能上并没有太大区别。目前EasyString只是一个简单的类,提供的功能也很有限,后续有需要时继续完善。原创 2023-06-27 19:37:17 · 156 阅读 · 0 评论