C/C++
文章平均质量分 57
TiWalker
冷静思考,坚持努力,勇敢前行!
展开
-
内存泄漏
内存泄漏检查1.内存泄漏内存泄漏的含义就是 申请的内存没有主动释放,就导致泄漏无人主动释放。从本质上来说,大不了内存耗尽,复位重来。但是这个内存泄漏带来的后果会让人觉得无法接受,明明可以避免的嘛。2.避免内存泄漏a.在C++1.0之前申请内存主要是malloc/free, new/delete.其中new是针对对象,会在申请内存的基础上,调用对象的构造函数,delete就是释放内存的基础上,调用析构。b.C++2.0之后引入了智能指针,智能指针增加了引用计数,会在不使用的场景下自动释放。c.做好原创 2020-07-12 17:38:36 · 144 阅读 · 0 评论 -
异或^运算的应用
1.异或运算 关于异或,有两种计算。一是逻辑异或,一是按位异或。所谓逻辑异或就是运算数是true或者false。比如p1=true,p2=true,p1^p2。 按位异或则是将变量转化为二进制,每一位分别异或。相同为0,不同为1。 按位运算如&、|、^优先级位于关系运算符之后,逻辑运算符之前。 好像不经常强调逻辑异或和按位异或,因为两者就是一原创 2016-08-30 15:17:08 · 781 阅读 · 0 评论 -
求模(mod)运算的应用
1、mod运算的性质结合律((a+b) mod p + c)mod p = (a + (b+c) mod p) mod p((a*b) mod p * c)mod p = (a * (b*c) mod p) mod p交换律(a + b) mod p = (b+a) mod p(a × b) mod原创 2016-09-02 14:33:55 · 11439 阅读 · 0 评论 -
OJ注意事项
OJ注意事项: 1.输出格式 a.空格。比如输出数组需要在相邻两个元素之间输出一个空格,但是数组最后一个元素后面不需要再输出空格。 b.换行。这个就看题目要求。 2.输入选用的函数 特别地以字符串为例,若字符串中含有空格,则用cin输入的话读不全。 cin>>读取字符串遇空格、“Tab”、回车都中断。原创 2016-09-02 17:29:36 · 701 阅读 · 0 评论 -
笔试总结(map/multimap/排序)
#include#include#include#includeusing namespace std;int main(){ int n,m; cin>>n>>m; vectordes; for(int i=0;i<n;i++) { int k; cin>>k; des.push_back(k); } sort(des.begin(),des.原创 2016-09-06 21:46:37 · 1587 阅读 · 0 评论 -
map/multimap的排序
以multimap的排序为例来说明:我们知道multimap是以红黑树为底层实现的,按照插入的键值直接排序。 默认是按照multimap键值的升序排列,如果按降序排列则multimap> 如果希望自定义排序: #include#include#include#includeusing namespace std;struct cmp //自定原创 2016-09-06 22:29:06 · 10595 阅读 · 0 评论 -
面试总结(C++)
1.析构函数必须是虚函数吗?析构函数不是必须为虚函数。但当类作为基类时,在用继承类对象初始化基类指针时,如果析构函数不定义为虚函数,那么在delete父类指针时只会执行父类的析构函数,而不会执行子类的析构函数。因此在类作为基类时,应该析构函数设为虚函数。原创 2016-09-22 22:14:50 · 306 阅读 · 0 评论 -
面经(C++)
自己写的面经,仅供参考。可能对应届生的作用大些。找工作是靠点运气,但绝非只靠运气。其实任何事都是。有人把找工作比作相亲,你看上我我看上你,这点也就是官方所说的双选。应届生注意的几个时间点:实习:一般为春季,大多数公司会来招实习。有机会可以尝试一下。有条件就去实习几个月,没条件积累一点经验也挺好的。因为实习生的招聘也挺正规的,笔试面试层层挑选。内推:一般为暑假7/8月份,秋招原创 2016-11-03 20:52:12 · 3841 阅读 · 3 评论 -
vs添加第三方库步骤(dcmtk+opencv)
dcmtk的使用:1. dcmtk编译的文件如下:简单介绍下:include文件夹下包含的是dcmtk工程的头文件,lib静态库包含的是相关实现,和引用动态链接库的效果是一样的。2. 在工程中使用时步骤a. C/C++—>常规—>附加包含目录—>将include目录添加进去b. 链接器—>常规à附加库目录—>将lib目录添加进原创 2016-11-14 15:52:34 · 1278 阅读 · 0 评论 -
日常问题记录
继承原创 2018-10-08 23:58:46 · 222 阅读 · 0 评论 -
流浪地球计划
1.学习linux内核2.学习编译原理3.学习linux基本知识、调试技巧。原创 2019-03-28 22:54:38 · 271 阅读 · 0 评论 -
VSCODE使用技巧
VSCODE最近比较火,有必要研究下VSCODE的使用。https://code.visualstudio.com/updates/v1_33原创 2019-04-17 23:55:17 · 403 阅读 · 0 评论 -
C++开源代码项目汇总
转载自:点击打开链接Google的C++开源代码项目v8 - V8 JavaScript EngineV8 是 Google 的开源 JavaScript 引擎。V8 采用 C++ 编写,可在谷歌浏览器(来自 Google 的开源浏览器)中使用。V8 根据 ECMA-262 第三版中的说明使用 ECMAScript,并在使用 IA-32 或 ARM 处理器的 Windows转载 2016-07-07 20:59:53 · 1499 阅读 · 0 评论 -
C++笔记4
1.复制控制。编译器会自动生成,但是也可以自定义实现。2.由于不能复制IO类型的对象,所以不能对那些类型的对象使用复制初始化3.发生隐式转换,除非有心利用,隐式转换常常带来程序逻辑的错误,而且这种错误一旦发生是很难察觉的。原则上应该在所有的构造函数前加explicit关键字,当你有心利用隐式转换的时候再去解除explicit,这样可以大大减少错误的发生。4.为了防止原创 2016-06-15 10:10:36 · 375 阅读 · 0 评论 -
C++笔记
1.不是类的组成代码无法访问private成员2.只在头文件中进行声明3.static 与 extern4.包含于引号内的头文件则从源文件所在的目录查找5.复合类型:引用 指针 数组6.魔数7.定义在全局作用域的未初始化变量初始化为0,定义在局部作用域内的未初始化变量则不初始化。8.抽象数据类型9.getline();10.保原创 2016-04-13 20:44:11 · 267 阅读 · 0 评论 -
C++笔记2
1.const void * 可以指向任何const类型的指针2.void *不能进行解引用3.算术运算的长度有限4.短路求值5.如果&&的操作会遇到边界等比较危险的情况,则应将其放于左值操作数6.不应该将条件表达式串接7.移位操作的右操作数必须小于左操作数的位数8.位与 逻辑与 位或 逻辑或9.bitset优于整型数据的低级直接位原创 2016-04-14 17:05:47 · 323 阅读 · 0 评论 -
C++笔记
1.挂起2.可以将const对象的指针初始化为非const对象,但不可以将非const对象初始化为const对象3.C语言中对于const形参和非const形参并没有什么区别4.复制实参有时不能满足实际情况 局部副本5.如果形参的唯一目的就是避免引用,则使用const 引用6.非const引用形参必须是完全同类型的非const引用7.普通的非co原创 2016-04-15 17:10:33 · 299 阅读 · 0 评论 -
C++ 智能指针详解
转载自:大神的博客C++ 智能指针详解 一、简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、bo转载 2016-05-24 15:23:13 · 266 阅读 · 0 评论 -
C++ map
map的用法总结:1.第一种:用insert函数插入pair数据。 mapStudent.insert(pair(1, "student_one"));第二种:用insert函数插入value_type数据mapStudent.insert(map::value_type (1, "student_one"));第三种:用数组方式插入数据 mapStu原创 2016-04-17 13:49:50 · 468 阅读 · 0 评论 -
字符串常量到底存放在哪个存储区
字符串常量,放在哪个存储区呢?是“自动存储区”还是“静态存储区”中?比如:char *pstr="hello world!";这里,"hello world!"是一个字符串常量,pstr是在栈中的变量。我想问,字符串常量,在哪个内存区域分配空间呢?好像应该不是在“栈区“分配空间吧!!!一、预备知识—程序的内存分配一个由C/C++编译的转载 2016-04-18 22:19:50 · 517 阅读 · 0 评论 -
C++网络编程(服务端程序)
#include#include//加载静态lib文件或者加载动态dll文件#pragma comment(lib,"ws2_32.lib")void main(){ //加载套接字库 WORD wVersionRequested; WSADATA wsaData; int err; //winsock库的版本号 wVersionRequested=MAKEWORD(1,1原创 2016-05-21 11:34:45 · 489 阅读 · 0 评论 -
C++笔记3
1.multimap、multiset2.pairnmake_pair(first,second)键类型必须实现"3.value_type是个pair类型,它的值成员可以修改,但键成员不能修改4.set集合5.multimap、multiset不能使用下标操作,因为可能一个键值对应多个对象6.lower_bound()、upper_bound原创 2016-05-23 16:37:45 · 350 阅读 · 0 评论 -
C++ 网络编程客户端
#include#include#pragma comment(lib,"ws2_32.lib")void main(){ //加载套接字库 WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested=MAKEWORD(1,1); err=WSAStartup(wVersionRequested,&ws原创 2016-05-23 21:05:10 · 468 阅读 · 0 评论 -
聊天程序(C++)
服务端:#include#include//加载静态lib文件或者加载动态dll文件#pragma comment(lib,"ws2_32.lib")void main(){ //加载套接字库 WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested=MAKEWORD(1,1); err=原创 2016-05-23 22:12:48 · 4482 阅读 · 0 评论 -
linux c学习
1 只在头文件中作声明2. 补码是负数真正的物理存储格式3. double f2 = 1.0; printf("%lf", f2); long double f3 = 1.0; printf("%Lf", f3); // 注意下,长双精度不是 %llf,而是 %Lf4. 字符9和数字9。字符9存储的是ascii码,数字9存储的是9的二进制表达原创 2016-07-10 17:01:37 · 396 阅读 · 0 评论 -
C/C++中extern关键字详解
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数转载 2016-04-13 10:10:29 · 325 阅读 · 0 评论