C++
文章平均质量分 71
MHSMIE
这个作者很懒,什么都没留下…
展开
-
C/C++字符串截止符注意点
文章目录前言一、\0补全分析二、注意点前言在日常项目开发中,使用字符串时对\0处置不当,经常会出现意想不到的问题,这里总结一下系统自动补充\0的场景,以及strlen和sizeof在不同场景下的作用直接上代码#include <stdio.h>#include <sys/types.h>#include <regex.h>int main(void){ char *s1 = "abcd"; char *s2 = "abcd\0";原创 2021-01-25 15:20:54 · 841 阅读 · 0 评论 -
C++ N问-继承问题
文章目录前言一、C++类继承问题二、问题前言本文介绍C++继承时一些容易出问题点一、C++类继承问题C++继承时一些混淆点二、问题问题:private,protected, private 继承区别三种继承限制的是父类的方法在子类中的访问权限,也就是父类的成员在子类中的访问权限为min(父类权限,继承权限)。继承修饰符,就像是一种筛子,将基类的成员筛到派生类。public、protected、private,就是筛子的眼。通过public继承,所有基类成员(除了private)原创 2021-01-22 17:53:59 · 187 阅读 · 0 评论 -
C++ N问之类静态变量共享问题
文章目录前言一、C++类静态变量二、问题前言本文介绍C++类静态变量使用时一些混淆点一、C++类静态变量类静态变量是归属于类的,类的所有对象共享同一个静态变量?二、问题问题:子类是否可以继承父类的静态变量和方法父类的static变量和函数在派生类中依然可用,但是受访问性控制(比如,父类的private域中的就不可 访问),而且对static变量来说,派生类和父类中的static变量是共用空间#include <iostream>using namespace st原创 2021-01-21 11:30:27 · 514 阅读 · 0 评论 -
升级gcc到支持c++17
apt-get install g++-8update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 700 --slave /usr/bin/g++ g++ /usr/bin/g++-7update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8原创 2020-12-31 11:47:39 · 5700 阅读 · 0 评论 -
线段树详解
线段树 | (给定范围求和)让我们通过思考下面的问题来理解线段树我们有一个数组 arr[0…n-1]. 我们要做的是计算从序号l到r内所有项的和,0 <= l <= r <= n -1修改数组中某一项的值为新的x, 我们需要做arr[i]一个简单的解法是从l到r一个简单的循环计算给定范围的和。对于值更新,直接arr[i] = x。第一个操作花费O(n)的时间,...翻译 2020-09-03 10:41:47 · 113 阅读 · 0 评论 -
函数体对结构体赋值的几种方法
例有结构体struct POINT { int a; int b;}*如何通过函数对其进行赋值 *通过形参赋值,可以有两种方式,一种是使用一级指针,一种是使用二级指针。使用一级指针进行赋值时,在原调用体内声明一个此结构体类型的变量,再用取地址获得变量的指针传达赋值函数内进行赋值。例子如下:#include <iostream>using namespace std;struct POINT { int a; int b;};void Assign原创 2020-08-22 15:39:16 · 3946 阅读 · 1 评论 -
[C++]重载,运算符
符号重载是C++实现类对象间基本操作的一个基本方式。 重载,运算符不是很常见,以此例说明:#include <iostream>#include <string> class Person{ int _id; std::string _name; unsigned int _age; public: explic...转载 2018-07-17 15:04:07 · 258 阅读 · 0 评论 -
【C++】explicit关键字用法
explicit 阻止不应该允许的经过 转换构造函数 进行的隐式转换的发生c++中,一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多构造函数),承担两个角色: 1. 构造器 2. 默认且隐含的类型转换操作符 为了防止构造函数被隐式调用,可以用explicit修饰构造函数 例:class Test1{ private: int nu...原创 2018-07-17 14:36:55 · 646 阅读 · 0 评论 -
【leetcode】Two Sum
Two Sum Problem: Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, a...原创 2018-06-07 14:20:59 · 275 阅读 · 0 评论 -
c++ ODBC使用
需要使用的文件 sql.h:包含基本的API定义 sqlext.h:包含扩展的ODBC定义 odbc32.lib 库文件 2. 执行方式 直接执行:直接提供sql语句,调用SQLExecDirect执行 准备执行:提供一个缺少某些参数的sql语句调用SQLPrepare,只有当语句准备好之后调用SQLExecute执行语句,可减少对SQL语原创 2017-09-12 17:28:37 · 6376 阅读 · 0 评论 -
cocos2d-x 创建lua项目问题
自学了将近一个月的cocos2d-x。本来没觉得有什么好记录的,都是些函数接口的调用之类的东西。但是今天解决的问题,让我不得不记录下来,为机智的我庆祝一下。在学到lua项目这时,创建cocos2d-x项目时勾选了support lua的选项然后项目还没建立出来,就报错了。错误一看到这个第一感觉就是安装包有问题,因为当初配置环境的时候都做得很对,但是细想应该不是安装包的问题,谁会原创 2016-05-18 20:17:17 · 1151 阅读 · 0 评论 -
typedef的作用以及与define的区别
在做项目时经常遇到typedef关键字,之前写代码的时候几乎没有用到过,因为之前只是实现一个小小的算法,代码量最多也就几百行。而在做项目时代码量很大,熟练的使用typedef则会能帮助减少很多的代码,也助于代码的阅读。同时typedet与#define的异同也是经常被问到的问题,在网上看到一个帖子,讲解很详细。转载过来仅供参考转自http://www.cnblogs.com/kerwinsha转载 2016-04-24 20:28:11 · 852 阅读 · 0 评论 -
二分查找和斐波那契查找优化
二分查找是一种很高效的查找方法,它需要所要查找的数列有序,然后每次折半进行查找,时间复杂度为O(logn),理解起来不难但是在代码实现要注意边界templateint binarySearch(T aim,T *array,int left,int right){ if(left<right){ int mid=(left+right)>>1; if(aim<array[mid原创 2016-06-01 15:15:44 · 1699 阅读 · 0 评论 -
c++11之 Lambda表达式
最近在学习cocos2d时,看到一些特殊的语句,一直以为是cocos2dx独有设计的,后才来发现原来是c++11的新特性!在此转载一篇关于此的介绍,以便学习理解我是搞C++的一直都在提醒自己,我是搞C++的;但是当C++11出来这么长时间了,我却没有跟着队伍走,发现很对不起自己的身份,也还好,发现自己也有段时间没有写C++代码了。今天看到了C++中的Lambda表达转载 2016-06-21 13:41:24 · 490 阅读 · 0 评论 -
C printf格式
一、printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf("", ); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原 样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输原创 2016-08-29 15:51:26 · 523 阅读 · 0 评论 -
C结构体之位域(位段)
转自:http://www.cnblogs.com/bigrabbit/archive/2012/09/20/2695543.htmlC结构体之位域(位段)有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或转载 2016-08-10 10:32:57 · 353 阅读 · 0 评论 -
右左法则--复杂指针解析
转自:http://blog.csdn.net/code_crash/article/details/4854965首先看看如下一个声明: int* ( *( *fun )( int* ) )[10]; 这是一个会让初学者感到头晕目眩、感到恐惧的函数指针声明。在熟练掌握C/C++的声明语法之前,不学习一定的规则,想理解好这类复杂声明是比较困难的。 C/C++所有复杂的声转载 2016-08-15 14:44:43 · 340 阅读 · 0 评论 -
linux中fork()函数详解(实例讲解)
转自 http://blog.csdn.net/jason314/article/details/5640969一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函转载 2016-09-22 10:38:43 · 450 阅读 · 0 评论 -
世纪难题之--const
从开始学C++开始,就被const搞晕了,不是难以理解,是真的很容易混淆。首先const的作用很简单,就是将定义常量,也就是使其变为只读的。当时当其与指针并到一起的时候,就各种麻烦了。首先是简单的int const 和 const intint const a=4;const int b=3;这两个作用是相通的,但是要注意在声明的时候就要初始化,因为声明之后就变成只读的了原创 2016-03-27 23:36:25 · 442 阅读 · 0 评论