c++
景天的天
我害怕你心碎没人帮你擦眼泪
展开
-
C++ const在成员函数前后的区别
函数将无法修改成员变量,下面的写法会报错。实际上在类的成员函数中,我们有许多情况不希望成员函数修改成员变量,在其后加上。类型是不行的,是因为这样就可以通过b来修改原来函数的返回值了,与用。——一个占据内存中某个可识别的位置(也就是一个地址)的对象。在函数前实际上是约束函数的返回的,表明。类型的变量接住函数的返回值,如果只用。但是一般的变量无法修改函数返回值,可以使得程序更加的严谨,健壮性更强。放在函数后通常是用在类中,限制。修饰的成员函数也不能调用其他非。原创 2023-06-25 10:47:57 · 321 阅读 · 0 评论 -
C++编程常见问题—error: passing ‘const std::map<>]‘ discards qualifiers
简单来说,map的[]运算符会在索引项不存在的时候自动创建一个对象,有可能会改变map本身,所以不能够用在一个const map上。用g++编译上面的代码,会报……discards qualifiers。另外,也可以使用at成员函数。...原创 2022-08-08 14:43:24 · 904 阅读 · 0 评论 -
C++不可以返回局部变量的引用或指针
所谓的不可以返回局部变量的引用或指针,指的是不能返回局部变量的引用或地址给引用或指针。事实上还是看该地址的位置是否在该函数的栈区,若是在栈区,函数调用结束,该地址就被释放了。尽管会出现栈地址上的值没被销毁的问题,可能是该栈区还没被其他的函数堆栈掉。可以,函数在返回的时候,返回处产生一个临时对象,用于存放局部变量a的值的一份拷贝(变量a的右值的拷贝)不可以,尝试返回a的地址给引用变量,a是存在栈里的,函数结束调用栈被销毁。不可以,尝试返回a的地址给指针,a是存在栈里的,函数结束调用栈被销毁。...原创 2022-07-19 11:54:43 · 1294 阅读 · 1 评论 -
c++中临时变量不能作为非const的引用参数
所以,临时变量不能作为非const引用参数,不是因为他是常量,而是因为c++编译器的一个关于语义的限制。但如果你把一个临时变量当作非const引用参数传进来,由于临时变量的特殊性,程序员并不能操作临时变量,而且临时变量随时可能被释放掉,所以,一般说来,修改一个临时变量是毫无意义的,据此,c++编译器加入了临时变量不能作为非const引用的这个语义限制,意在限制这个非常规用法的潜在错误。很多人对此的解释是临时变量是常量,不允许赋值,改动,所以当作为非常量引用传递时,编译器就会报错。中,由于g定义的参数是。..原创 2022-07-18 16:08:35 · 377 阅读 · 0 评论 -
【C++】error: passing ‘const xxx’ as ‘this’ argument discards qualifiers
函数,因为其他函数有可能会修改该对象的成员,编译器为了避免该类事情发生,会认为。限定符的成员函数中,不能够调用非const成员函数。错误的原因就是,C++中。的意思就是缺少限定符。意思是说在一个加了。...原创 2022-07-18 15:58:36 · 7891 阅读 · 2 评论 -
boost序列化向前向后兼容
boost序列化实现向前兼容向后兼容原创 2022-07-08 20:46:03 · 671 阅读 · 0 评论 -
JSON序列化和反序列化
JSON序列化和反序列化原创 2022-07-05 14:45:35 · 749 阅读 · 0 评论 -
leetcode杂记
回溯+剪枝的简易实现方式,比较典型的39.Combination Sum,在dfs的函数的for循环里面直接加上判断来实现剪枝,同时事先sort来去除重复,这道题目其实非常典型。 void DFS(int st, int num, int target, vector<int>& candidates){ if(num == target){ ans.push_back(path); return;原创 2020-06-22 20:28:33 · 168 阅读 · 0 评论 -
Unix-Linux编程实践教程——pipe
这个demo还是很有意思的,关于重定向和管道结合的很好,也很清晰的展示了进程之间通过管道去通信的原理。//// Created by Jimmy on 3/31/20.//#include <stdio.h>#include <unistd.h>#include <cstdlib>#define oops(m,x) {perror(m);exi...原创 2020-04-01 09:16:39 · 243 阅读 · 0 评论 -
Unix-Linux编程实践教程——shell(3)
相较前一个版本,主要是把main.cpp中的对命令直接执行换成了对命令进行处理,加了逻辑的判断。头文件controlflow.h//// Created by Jimmy on 3/25/20.//#ifndef WHO_CONTROLFLOW_H#define WHO_CONTROLFLOW_H#include <stdio.h>#include "smsh....原创 2020-03-25 15:45:45 · 192 阅读 · 0 评论 -
Unix-Linux编程实践教程——shell(2)
头文件smsh.h//// Created by Jimmy on 3/23/20.//#ifndef WHO_SMSH_H#define WHO_SMSH_H#include <stdio.h>#include <stdlib.h>#include <string.h>#include <signal.h>#include ...原创 2020-03-23 16:51:41 · 264 阅读 · 0 评论 -
Unix-Linux编程实践教程——shell(1)
//// Created by Jimmy on 3/19/20.//#include <stdio.h>#include <signal.h>#include <string.h>#include <stdlib.h>#include <zconf.h>#define MAXARGS 20#define ARGLEN...原创 2020-03-20 10:59:08 · 195 阅读 · 0 评论 -
Unix-Linux编程实践教程——pwd
//// Created by Eddie on 2020/3/16.//#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <dirent.h>#include <cstdlib>#include <cstring>#...原创 2020-03-16 21:47:29 · 171 阅读 · 0 评论 -
Unix-Linux编程实践教程——ls
//// Created by Eddie on 2020/3/15.//#include <stdio.h>#include <sys/types.h>#include <dirent.h>void do_ls(char[]);int main(int ac, char *av[]){ if(ac == 1) do_...原创 2020-03-15 22:09:33 · 201 阅读 · 0 评论 -
Unix-Linux编程实践教程——utmplib.c
//// Created by Eddie on 2020/3/14.//#include <stdio.h>#include <fcntl.h>#include <sys/types.h>#include <utmp.h>#include <zconf.h>#define NRECS 16#define NULLU...原创 2020-03-15 09:03:59 · 279 阅读 · 0 评论 -
Unix-Linux编程实践教程——cp
/*--version 1.0--*/#include <stdio.h>#include <unistd.h>#include <fcntl.h>#include <cstdlib>#define BUFFERSIZE 4096#define COPYMODE 0644void oops(const char *, const c...原创 2020-03-13 17:05:39 · 229 阅读 · 0 评论 -
Unix-Linux编程实践教程——who
/*--version 1.0--*/#include <stdio.h>#include <utmp.h>#include <fcntl.h>#include <unistd.h>#include <cstdlib>#define SHOWHOSTvoid show_info(utmp *);int main(){...原创 2020-03-12 20:25:14 · 164 阅读 · 0 评论 -
Unix-Linux编程实践教程——more
/*--version 1.0--*/#include <stdio.h>#include <cstdlib>#define PAGELEN 24#define LINELEN 512void do_more(FILE *);int see_more();int main(int ac, char * av[]){ FILE *fp; ...原创 2020-03-12 10:43:43 · 184 阅读 · 0 评论 -
C++学习之extern
本文参考文章,侵删C++学习之extern关键字extern关键字的用法extern关键字的用法extern 与头文件(*.h)的区别和联系在看cjson源码的时候碰到了extern,之前也碰到过,没有太注意,这次再仔细学了下。用途:可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义,这里起到的是声明作用范围的用处,...原创 2019-12-11 17:12:49 · 305 阅读 · 0 评论 -
std::bad_alloc说开去
今天跑代码的时候碰到了这样的一个问题terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc解决不了,谷歌后发现如下文章,可以解惑,写的非常的好。原文链接当然,我这里只是针对我这一会儿的情况。最近跑的一个C++程序,迭代时间长,而且一共有800个迭代,等了一天,跑到...原创 2019-11-28 19:17:22 · 9388 阅读 · 0 评论 -
new和malloc的区别
我只是试一下这个东西malloc函数new运算符内存泄漏malloc函数malloc函数是c语言中stdlib.h头文件下面用于还说呢情动态内存的函数,其返回的类型是同变量类型的指针。基本用法以及以申请int型和node型结构体变量为例的例子如下:typename *p = (typename*)malloc(sizeof(typename));int* p = (int*)malloc...原创 2018-09-18 10:11:24 · 249 阅读 · 0 评论 -
BST 基操
struct node{ typename data; node* lchild; node* rchild; };node* newNode(int v){ node* Node = new node; Node->data = v; Node->lchild = Node->rchild = NULL; r...原创 2018-08-16 12:06:31 · 199 阅读 · 0 评论 -
c++学习小记(未完
https://blog.csdn.net/jiahehao/article/details/1841776侵删 另外在open函数的参数列表中可以直接加入mkdir 的参数 S_IRWXU 00700权限,代表该文件所有者拥有读,写和执行操作的权限 S_IRUSR(S_IREAD) 00400权限,代表该文件所有者拥有可读的权限 S_IWUSR(S_IWRITE) 0020...原创 2018-07-10 10:07:18 · 319 阅读 · 0 评论