C++学习笔记
Linxson
自学过程中记录错题、笔记与小结所用。
展开
-
【CGAL】Clion+vcpkg+MacOS M2
记录一下clion+vcpkg安装cgal原创 2023-06-27 20:11:33 · 1025 阅读 · 0 评论 -
【C++】CString.Format(_T())输出乱码的问题
最近给导师干活,需要将一段VC++代码格式化输出到txt文件当中,但是输出到txt文件当中会出现乱码,如下所示: 该段代码如下:解决方案解决方案一:将CString转换为char 在该代码段最前页添加引用: 然后将原代码段修改为:解决方案二:将字符集修改为->多字符集 对程序点击右键->属性,进入如下界面框,选择“ 使用多字节字符集 ”即可。原创 2022-10-25 23:33:55 · 1319 阅读 · 0 评论 -
【C++】CGAL学习笔记
这一部分是记录本人在配置CGAL环境时遇到一些坑以及查询到的诸多资料,在此作为一个记录,以便日后查阅。原创 2022-08-03 09:44:58 · 2494 阅读 · 4 评论 -
【c++笔记】关于main函数的argc和argv
本人最近在阅读源码的过程中,发现c++的很多源码的main函数往往是如下形式:int main(int argc, char * argv[])亦或是如下形式:int main(int argc, char ** argv)然后在函数内部有时又会出现:if (argc>1)作为新手,以往定义的main函数都只是空形参列表,对此很是不解。最后,在《C++primer》的Page.196和Page.204上发现对此有记载,原来这是一种对main函数传递实参的情况,它表示用原创 2022-02-17 20:12:54 · 1471 阅读 · 0 评论 -
【C++笔记】Visual Studio 2017配置SMFL
第一步、下载SMFL本人电脑是惠普暗夜精灵4Windows11,亲测要下32bit版本,切记不要下64bit的版本,否则会报措:网站链接为:Download (SFML)第二步、配置SFML库这一步比较枯燥,但也是入门VS的必经之路,以下是方便自己看,新手可以看看其他CSDN文章~step 1将光标移至项目名(蓝色突显),右键,选择属性,打开如下属性框:step 2进入C/C++,点击最上方的附加包含目录点击编辑,然后增加新行,把下载压缩好SFML中的incl..原创 2022-02-16 17:21:58 · 1159 阅读 · 0 评论 -
【c++ 笔记】关于单调队列的一点记录
首先明确,单调队列和优先队列有很大的不同:前者数据类型核心是一个deque,其值是按单调递增或单调递减的顺序记录的;后者是一个二叉堆,其值是按优先级从大到小排序记录的。1. 双端队列deque 在c++中,双端队列支持快速随机访问,在头尾位置插入删除速度更快,故其支持的API有:class deque { // 在队头插入元素 n void push_front(int n); // 在队尾插入元素 ...原创 2021-12-22 13:25:23 · 569 阅读 · 0 评论 -
【c++ 笔记】关于单调栈的一点记录
单调栈和单调队列有点像,其实本质就是以一个栈或队列去存放一堆单调递增或单调递减的数据,队列一般用于对元素个数有要求的情况,而单调栈一般用于对元素个数无限制,或者说对元素个数是inf的情况。原创 2021-12-21 16:07:59 · 643 阅读 · 0 评论 -
【c++笔记】关于优先队列的一个记录
今天在刷leetcode23题时发现,在使用优先队列合并时,创建了一个结构体内嵌比较函数,很有意思,便做如下记录: struct Status { int val; ListNode *ptr; bool operator < (const Status &rhs) const { return val > rhs.val; } };1. 为什么设三个参数?要知道stat原创 2021-12-17 19:34:10 · 1697 阅读 · 0 评论 -
【C++笔记】标准库array和内置数组的异同
同:两者都是表示固定大小的数组,即不能添加和删除元素,也都支持快速访问,如:array<int,42> ={}; int arr[42]={}; //保存42个int的空数组异:1.内置数组arr类型不能进行拷贝或对象赋值操作,但array并无此限制:int digs[10]={0,1,2,3,4,5,6,7,8,9};int cpy= digs; //错误,内置数组类型不支持拷贝或赋值array<int,10>digits=原创 2021-12-10 20:27:11 · 820 阅读 · 0 评论 -
【C++笔记】关于push_back(vector<int>());
vector<vector<int>> vec;vec.push_back(vector<int>());vec.back().push_back();今天在刷leetcode题的时候见到如上三句代码,很有意思。第一句创建了一个实体为vertor<int>的容器,可以理解为一个二维数组;第二句话相当于分隔符了,往二维数组里插入空的vector<int>(),可以理解为分行,即二维数组的下一行;第三句话则是在每一行里插入数据。.原创 2021-12-05 10:51:01 · 3808 阅读 · 3 评论 -
【C++笔记】应用stringstream流对数据类型进行转换
以下是本人在做算法题是学习的一个将int/double等数型数据转换为字符型数据的函数模板:#include<stringstream>;void i2s(int x,string &s){ sstream ss; ss<<x; ss>>s;} 本代码是将int型的x读入到ss中去,再从ss中写入到s中,最后通过引用对s进行修改。当然如果将x和s的位置进行互换,即将string类型转变为x,但要...原创 2021-12-02 22:08:51 · 947 阅读 · 0 评论 -
【C++笔记】vector容器中下标使用
vector<int> v; v[0]=1;//错误,因为v不包含任何元素vector<int> v(10); v[0]=1;//正确,此时v是含有10个0的容器根据《c++ primer》page.93中提到,不能用下标形式添加元素,但是可以对下标形式对元素内容进行修改,即下标v[n]是返回v中第n个位置元素的引用。...原创 2021-11-24 14:16:31 · 4620 阅读 · 3 评论 -
【C++笔记】return { } 的含义
在C++11新规定中,函数可以返回花括号包围的值的列表。vector<string> process(){//...//expected and actual are the class of stringif(expected.empty()) return {};//返回一个空vector对象else if(expected==actual) return {"functionX","okay"};//返回列表初始化的vector对象else ret原创 2021-11-22 15:38:11 · 2422 阅读 · 0 评论