![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 56
macans
止步就是退步
展开
-
魔方阵原理及十种解法(C语言)
魔方阵,古代又称“纵横图”,是指组成元素为自然数1、2…n的平方的n×n的方阵,其中每个元素值都不相等,且每行、每列以及主、副对角线上各n个元素之和都相等。如3×3的魔方阵: 8 1 6 3 5 7 4 9 2 魔方阵的排列规律如下:(1)将1放在第一行中间一列;(2)从2开始直到n×n止各数依次按下列规则存放;每一转载 2016-04-21 15:35:46 · 51775 阅读 · 14 评论 -
C++ 虚函数表解析
转自Blog: http://blog.csdn.net/haoel前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图转载 2017-07-27 17:13:56 · 315 阅读 · 0 评论 -
值得推荐的C/C++框架和库
转载于: http://www.ezlippi.com/blog/2014/12/c-open-project.html值得学习的C语言开源项目Libeventlibev是一个开源的事件驱动库,基于epoll,kqueue等OS提供的基础设施。其以高效出名,它可以将IO事件,定时器,和信号统一起来,统一放在事件处理这一套框架下处理。基于Reacto转载 2017-08-04 10:35:31 · 694 阅读 · 0 评论 -
C++ 对象的内存布局(上)
转自blog:http://blog.csdn.net/haoel前言 07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这也是我为什么再写一篇续言的原因。因为,在上一篇文章中,我用了的示例都是非常简单的,主要是为了说明一些机理上的问题,也是为了图一些表达上方便转载 2017-07-28 10:10:41 · 272 阅读 · 0 评论 -
C++内存地址分配和内存区划分简介
C++内存地址分配简介1 内存地址是从高地址到低地址进行分配的:int i=1; int j=1; cout/*输出:0012FF60(高地址处) 0012FF54(低地址处)*/1231232 函数参数列表的存放方式是,先对最右边的形参分配地址,后对最左边的形参分配地址。 3 Little-endian模式的CPU对操作数的存放方式是从低字节到高字节的 0x1转载 2017-07-18 09:12:35 · 1332 阅读 · 0 评论 -
copy构造函数调用情况
很早知道拷贝构造函数被调用有三种情况:1)类对象初始化该类的另一对象时;2)形参为类对象的函数被调用时;3)返回值为类对象的函数执行完成返回调用者时。但今天才发现理解的和实际情况有偏差,并不是出现赋值运算符=就是调用的赋值操作运算符函数啊,比如这里的1),类对象初始化另一对象时是可以用拷贝构造函数形式,也可以利用赋值符号的形式啊,类似内置类型的初始化,用一个简单的类来验证了该事实。原创 2017-07-29 11:03:03 · 406 阅读 · 0 评论 -
sys/socket.h
#include 1、构建socket/* Create a new socket of type TYPE in domain DOMAIN, using protocol PROTOCOL. If PROTOCOL is zero, one is chosen automatically. Returns a file descriptor fo转载 2017-05-03 21:51:18 · 4033 阅读 · 0 评论 -
《More Effective C++》条款27:如何让类对象只在栈(堆)上分配空间?
转自:http://blog.csdn.net/hxz_qlh/article/details/13135433昨天一个同学去网易面试C++研发,问到了这么一个问题:如何限制一个类对象只在栈(堆)上分配空间?一般情况下,编写一个类,是可以在栈或者堆分配空间。但有些时候,你想编写一个只能在栈或者只能在堆上面分配空间的类。这能不能实现呢?仔细想想,其实也是可以滴。在C++中,类转载 2017-04-02 23:07:57 · 253 阅读 · 0 评论 -
bus error与segment error
在c程序中,经常会遇到段错误(segment error)和总线错误(bus error),这两种问题出现的原因可能如下段错误:对一个NULL指针解引用。访问程序进程以外的内存空间。 实际上,第一个原因可以规约到第二个原因,在一个c程序的虚拟内存空间中,从低地址到高地址一次是代码区,堆区(向上增长),栈区(向下增长),最上是常量区,其中NULL指针的位置正好是虚拟内存转载 2017-04-01 19:28:03 · 4333 阅读 · 0 评论 -
优先队列priority_queue 用法详解
优先级队列默认less 大数优先。优先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序每次的push和pop操作,队列都会动态的调整,以达到我们预期的方式来存储。例如:我们常用的操作就是对数据排序,优先队列默认的是数据大的优先级高所以我们无论按照什么顺序push一堆数,最终在队列里总是top出最大的元素。用法转载 2017-03-28 10:53:32 · 726 阅读 · 0 评论 -
const reference and reference to const
reference(引用)是一个object的alias别名,本身不是一个object,故严格说没有const reference。当你称呼const reference 的时候前提是你要明白那是对reference to const 的简称。原创 2016-11-10 14:25:55 · 774 阅读 · 0 评论 -
标准C++中的string类的用法总结
要想使用标准C++中string类,必须要包含#include // 注意是,不是,带.h的是C语言中的头文件using std::string;using std::wstring;或using namespace std;下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。string和wstri转载 2016-10-19 20:07:26 · 920 阅读 · 0 评论 -
C++迭代器 iterator
1. 迭代器(iterator)是一中检查容器内元素并遍历元素的数据类型。(1) 每种容器类型都定义了自己的迭代器类型,如vector:vector::iterator iter;这条语句定义了一个名为iter的变量,它的数据类型是由vector定义的iterator类型。(2) 使用迭代器读取vector中的每一个元素:vector ivec(10,1);for(vector转载 2016-10-09 19:56:25 · 520 阅读 · 0 评论 -
C++中容器总结
C++容器总结转载 2016-09-23 13:43:43 · 963 阅读 · 0 评论 -
Linux中gdb 查看core堆栈信息
本文转载自:http://blog.csdn.net/suxinpingtao51/article/details/12072559core dump 一般是在segmentation fault(段错误)的情况下产生的文件,需要通过ulimit来设置才会得到的。调试的话输入: gdb filename corefilename就是产生core文件的可执行文件,croe转载 2017-09-24 21:22:16 · 2219 阅读 · 0 评论