![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++学习笔记
Niklaus9084
业余程序员,自学Creo二次开发,摸着石头过河
展开
-
C++vector 越界异常
vector 并不像数组有明确的边界,当指针指向我们定义的 vector 之外时,c++并不会抛出异常,这时的指针就成了野指针。这时候就发生了一些有意思的事情,按道理说用自己定义的类创建 vector,野指针指向的区域应该不会有内容,就算有也不会是自定义类_data。而下面程序运行时,(it-1)->index 却总能输出内容,后面的(it-1)->data 就卡住,直到程序退出。不知道是不是因为我用的类名和变量比较特殊。还有更有意思的是居然有一次跳过了第一条,后面正常输出了。所以,后面在原创 2022-02-24 15:13:16 · 3101 阅读 · 0 评论 -
C++字符串
多字节和宽字符C++中只有两个字符类型 char 和 wchar*t,其它所有类型都是这两个类型的别名。如typedef char CHAR;、typedef \_Null_terminated* CHAR *NPSTR, *LPSTR, \*PSTR;等。有人说 wchar_t 表示 Unicode 字符,char 表示 ANSI 字符。这个说法我觉得对,也不对。以我目前对字符的认识来看,char 和 wchar_t 只标识字符在内存中的占位宽度,与编码格式无关。其中,一个 char 占 1 个字原创 2022-02-20 21:05:53 · 582 阅读 · 0 评论 -
可变参数的函数
可变参数的宏函数声明int CheckEnv(int count, ...);函数声明与普通函数声明方式类似,只是参数列表中第一个参数 count 标识参数数量,…为实际参数列表参数读取va_list ap;va_start(ap, count);for (int i = 0; i < count; i++){ if (Model->GetType() == va_arg(ap, pfcModelType)) { EnvFlag = 1;转载 2022-02-16 17:00:51 · 126 阅读 · 0 评论 -
C++vector
头文件#include <vector>#include <algorithm>#include <iterator>创建和初始化参考文章:https://blog.csdn.net/sss_369/article/details/88360769vector list1; //默认初始化,最常用vector list2(list);vector ilist2 = ilist; //拷贝初始化vector list = {1,2,3.0,..原创 2022-01-25 15:39:45 · 361 阅读 · 0 评论 -
C++格式化输出
流输出操作符完整参考:http://c.biancheng.net/view/275.htmlLOG(LOG_INFO) << "Dimension: " << left << setw(10) << dim.GetDimension()->GetDimValue() << "Angle: " << left << setw(8) << dim.GetAngle() <.原创 2022-01-25 13:36:55 · 986 阅读 · 0 评论 -
C++双向链表
最早开始接触C++大概是在07年,真正开始学是在12年。那时候给我留下的印象就是普通数组是静态的,动态数组创建贼麻烦,当时比较常用的实现方法是用链表。链表的原理很简单,但是实现起来也挺复杂的。后来又学习了Python,发现数组好简单而且很灵活。时隔多年,再次用C++写插件,对于数据结构的认识还停留在多年前。为了实现自建类型的动态数组结构,第一想到的还是链表。参照网上的例子自己写了一个完整的链表类,放在这里留个记录。现在的C++已经丰富了很多特性,其中vector就可以很轻松的实现。其实内部逻辑应该都是一样的原创 2022-01-25 08:51:17 · 738 阅读 · 0 评论 -
C语言-变量
C 语言提供了typedef关键字,您可以使用它来为类型取一个新的名字。typedef unsigned char BYTE;在这个类型定义之后,标识符 BYTE 可作为类型unsigned char的缩写char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示。wchar_t数据类型一般为16位或32位,但不同的C或C++库有不同的规定,如GNULibc规定wchar_t为32位,总之,wchar_t所能表示的字符数远超ch...转载 2021-12-16 14:24:12 · 218 阅读 · 0 评论 -
C++ 原始字符串
原始字符串——C++11新特性,VS2012不支持原始字符串将"(和)"用作定界符,并使用前缀R标识原始字符串:cout << R"(Jim "King" Try usese "\n" instead of endl)" << "\n";输出结果:Jim "King" Try usese "\n" instead of endl带括号的原始字符串,可以将"+*(和)+*"作为定界符:cout << R"+*(Jim "King" Try use原创 2022-01-24 16:27:36 · 1607 阅读 · 0 评论