C/C++ VS
XiAoma123_1
这个作者很懒,什么都没留下…
展开
-
C++常用功能
获取C++ 二维数组的行和列大小sizeof(Arr[0][0])//一个元素占用的空间,sizeof(Arr[0])//一行元素占用的空间,sizeof(Arr)//整个数组占用的空间int size=sizeof(Arr)/sizeof(Arr[0][0]);//数组元素总数int rows = sizeof(arr) / sizeof(arr[0]);//行数int cols = sizeof(arr[0]) / sizeof(arr[0][0]);//列数...原创 2021-08-23 10:19:20 · 122 阅读 · 0 评论 -
std::lock_guard作用域范围
std::lock_guard作用域内自动上锁解锁对于不同线程访问统一资源时,为了避免冲突一般都通过对目标共享变量上锁和解锁,让共享变量互斥第一种方式:一般情况可以在共享变量前后分别上锁解锁,至少需要以下三个操作复制代码// 定义锁std::mutex m_mutex;// 上锁m_mutex.lock();// 上锁和解锁之间为对共享变量的访问操作.....// 解锁m_mutex.unlock();第二种方式:使用std::lock_guard,在std::loc转载 2021-05-03 09:01:05 · 4051 阅读 · 0 评论 -
虚函数和纯虚函数的区别
1.虚函数和纯虚函数可以定义在同一个类(class)中,含有纯虚函数的类被称为抽象类(abstractclass),而只含有虚函数的类(class)不能被称为抽象类(abstractclass)。 2.虚函数可以被直接使用,也可以被子类(subclass)重载以后以多态的形式调用,而纯虚函数必须在子类(subclass)中实现该函数才可以使用,因为纯虚函数在基类(baseclass)只有声明而没有定义。3.虚函数和纯虚函数都可以在子类(subclass)中被重载,以多态...原创 2021-04-10 20:37:15 · 398 阅读 · 0 评论 -
gdb调试(2):断点
转发自:http://songjinshan.com/akabook/zh/gdb.html#id1看以下程序: 1 2 3 4 5 6 7 8 9101112131415#include <stdio.h>int main(void){ int sum = 0, i = 0; char input[5]; ...转载 2018-06-08 11:22:02 · 690 阅读 · 0 评论 -
gdb调试(3):观察点和程序崩溃
转发自:http://songjinshan.com/akabook/zh/gdb.html#id1继续修改上一节的程序。经过调试我们得出结论,对于这个程序来说, sum 赋不赋初值不重要,重要的是在 while (1) 循环体的开头加上 sum =0; ,这才能保证每次循环从0开始累加。我们把程序改成这样: 1 2 3 4 5 6 7 8 9101112131415...转载 2018-06-08 11:25:00 · 2682 阅读 · 0 评论 -
C++ 运算符 +的 重载方法
有两种方法:1.作为成员函数,接受一个参数。2.作为友元函数,接受两个参数。详细内容和代码demohttp://greatverve.cnblogs.com/archive/2013/02/03/cpp-operator-add.html...转载 2018-12-16 10:29:20 · 173 阅读 · 0 评论 -
Code rule(2)
Guideline F-1: The use of preprocessor facilities (in particular #define) is to be avoided if alternative language facilities can be used. There are several reasons for this:Constants defined by pre...原创 2018-12-28 14:36:13 · 364 阅读 · 0 评论 -
Makefile 编写技巧
Makefile 编写技巧自动遍历目录下的cpp文件和hpp文件,不用每次都加SRC_PATH := src src/Common src/XXXXAPP_SRCS = $(foreach dir, $(SRC_PATH), $(wildcard $(dir)/*.c $(dir)/*.cpp))APP_SUB_INCLUDES := logic/include logic/...原创 2019-03-12 17:40:59 · 297 阅读 · 0 评论 -
C++运行时调用纯虚函数
今天来立马改了测试代码,在父类里加上析构函数声明、实现……果然,析构后对象首地址的内容被改写了 Obj* pB = new Obj(); printf("addr(%d) \n", *((int*)pB)); delete pB; printf("addr(%d) \n", *((int*)pB));至此,可以肯定服务器宕机,就是因为战斗对象被析构,虚指针...原创 2019-04-10 17:21:46 · 1923 阅读 · 0 评论 -
STL排序
https://www.cnblogs.com/fengcc/p/5256337.html转载 2019-05-22 19:28:29 · 237 阅读 · 0 评论 -
进程间通信几种方式
来源:https://blog.csdn.net/wh_sjc/article/details/70283843进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进...转载 2019-05-28 17:21:55 · 251 阅读 · 0 评论 -
智能指针
参考 https://www.cnblogs.com/TenosDoIt/p/3456704.html转载 2019-05-31 16:17:15 · 149 阅读 · 0 评论 -
C stl
http://www.cplusplus.com/reference/vector/vector/emplace_back/原创 2019-06-06 17:02:56 · 431 阅读 · 0 评论 -
gdb调试(1):单步执行和跟踪函数调用
转发自:http://songjinshan.com/akabook/zh/gdb.html#id1看下面的程序: 1 2 3 4 5 6 7 8 9101112131415161718#include <stdio.h>int add_range(int low, int high){ int i, sum; f...转载 2018-06-08 11:20:18 · 7323 阅读 · 0 评论 -
C++ 中关于引用&使用
int &i = 1; //这样赋值是错误的,引用变量是要使用右值,不可以使用左值。const int &i = 2; //const常量可以使用左值赋值。原创 2018-06-07 14:00:11 · 310 阅读 · 0 评论 -
C字符串和C++中string的区别
在C++中则把字符串封装成了一种数据类型string,可以直接声明变量并进行赋值等字符串操作。以下是C字符串和C++中string的区别:C字符串string对象(C++)所需的头文件名称 或或需要头文件 原因为了使用字符串函数为了转载 2016-11-18 15:26:34 · 486 阅读 · 0 评论 -
C中指针的输出格式和long long 的输出格式 %02x与%2x 之间的区别
指针的输出格式:printf("adders is %p",&io.c);long long 的输出格式 printf("%lld\n",());原创 2017-03-05 18:42:27 · 1069 阅读 · 0 评论 -
do{}while(0)的作用
关于do{}while(0)的作用,以及使用目的和方法转载 2017-04-09 20:55:18 · 371 阅读 · 0 评论 -
字符串分割的几种方法
方法一: 利用STL自己实现split 函数(常用,简单,直观)原型: vector split(const string &s, const string &seperator);输入一个字符串,一个分隔符字符串(可包含多个分隔符),返回一个字符串向量。这是我最喜欢的方法,因为它最直观,在平常也最常用。实现及测试代码如下#include #include #i转载 2017-03-26 20:28:04 · 3016 阅读 · 0 评论 -
C/C++面试常见问题总结
这里是面试过程常见的问题原创 2017-11-18 13:58:42 · 709 阅读 · 0 评论 -
字节对齐
解释字节对齐相关的细节内容转载 2017-11-20 17:08:35 · 253 阅读 · 0 评论 -
多线程之互斥锁(By C++)与多进程
多线程 锁 死锁转载 2017-06-11 12:10:53 · 2372 阅读 · 0 评论 -
函数返回的几种情况
转载地址:https://www.cnblogs.com/edwardcmh/archive/2012/03/20/2408359.html1. 返回局部变量的值可以有两种情况:返回局部自动变量和局部静态变量,比如,int func(){ int temp = 0; // 返回局部自动变量的值 return temp;}局部变量temp存储在栈中,函数返回时会自动复制一转载 2017-11-24 11:15:45 · 462 阅读 · 0 评论 -
设计模式
单例模式package com.seven.exercise.testEception;/** * 单例模式,饿汉式 * @author Seven * */public class SingleDemoHunger { private SingleDemoHunger() { } private stati原创 2017-11-21 21:02:19 · 280 阅读 · 0 评论 -
多线程中锁的使用
线程之间的锁有:互斥锁、条件锁、自旋锁、读写锁、递归锁。一般而言,锁的功能越强大,性能就会越低。1、互斥锁互斥锁用于控制多个线程对他们之间共享资源互斥访问的一个信号量。也就是说是为了避免多个线程在某一时刻同时操作一个共享资源。例如线程池中的有多个空闲线程和一个任务队列。任何是一个线程都要使用互斥锁互斥访问任务队列,以避免多个线程同时访问任务队列以发生错乱。在某一时刻,只有一转载 2017-11-27 15:49:33 · 801 阅读 · 0 评论 -
打印文件行数函数信息,定位信息
#definePRINT_LINE_INFO\ do{\ printf("%s:%d:%s\n",__FILE__,__LINE__,__FUNCTION__);\ }while(0);使用宏定义统一打印的格式 ,方便调用 #define REDUND_TRC(ylog_lvl, fmt, ...) ylog_no...原创 2017-11-27 16:47:17 · 390 阅读 · 0 评论 -
C语言移植到VS环境下的C++
首先了解几个概念。1.命令行界面(Command Line Interface,简写:CLI),也有人称之为字符用户界面(CUI),命令行界面(CUI)没有图形用户界面(GUI)2.头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,原创 2014-04-02 11:21:28 · 1010 阅读 · 0 评论