C++
杨白开水
这个作者很懒,什么都没留下…
展开
-
转 如何理解c和c++ 的复杂类型声明
曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明。 我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typedef,还有函数指针,最后介绍一个能够让你准确地理解任何C/C++声明的“右左法则”。 需要强调一下的是,复杂的C/C++声明并不是好的编程风转载 2007-05-02 20:19:00 · 2622 阅读 · 1 评论 -
智能指针(auto_ptr 和 shared_ptr)
http://www.cppblog.com/expter/archive/2009/03/29/78270.html都是这周看书以及代码的总结: Stl 中 auto_ptr只是众多可能的智能指针之一,auto_ptr所做的事情,就是动态分配对象以及当对象不再需要时自动执行清理。 这里是一个简单的代码示例,如果没有auto_ptr,转载 2013-02-26 18:11:19 · 443 阅读 · 0 评论 -
window下eclipse搭建C/C++开发环境(超简单无需插件版)
http://blog.csdn.net/sinlff/article/details/7269196经过若干google之后(百度就不用说了),又经过了若干尝试,终于用最简单的步骤配起来了。(一些比较旧的文章写的太繁杂了,随着各个工具的升级,搭建环境很简单了)。 前言:写博客不是为了炫耀什么、发泄什么、也不是为了记录什么,只是想写篇日期看上去比较新的文转载 2013-05-21 11:04:01 · 1818 阅读 · 1 评论 -
用GDB调试程序
http://blog.csdn.net/haoel/article/details/2884七、设置显示选项 GDB中关于显示的选项比较多,这里我只例举大多数常用的选项。 set print address set print address on 打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。转载 2013-07-12 18:38:24 · 671 阅读 · 0 评论 -
STL vector中的元素删除
http://sakurasea.com/program/stl-vector-delete-element/删除vector中的元素,最容易的方法就是使用vector的erase()函数。12345678vector vec;for ( vector::iterator iter = vec.begin();转载 2013-07-16 18:15:49 · 16511 阅读 · 0 评论 -
vector、map容器删除操作总结
http://blog.csdn.net/shellching/article/details/47774961、关于vector中元素的删除和迭代器失效问题[cpp] view plaincopyvectorint> vv; vv.push_back(1);转载 2013-07-16 18:33:36 · 1132 阅读 · 0 评论 -
c++虚函数、成员变量内存布局
大家都知道c++的虚函数有个虚表,那这个需要具体在哪呢,在程序的代码段还是数据段的?一个类有成员变量,成员变量在代码段内是怎么分布的呢?如何根据一个对象指针调用某个虚函数?如何根据一个对象的指针直接修改成员变量?如果生成多个对象,那是不是会为每一个对象都生成一份虚表?ok,问了这么多,咱们来一一解答吧。虚表其实在数据段。对于一个具体类型来说,它的行为是确定的,即对于同一个类型的所有原创 2013-07-19 18:05:25 · 3636 阅读 · 0 评论 -
c++关键字详解(volatile, mutable, explicit, dynamic_ cast<T>(expression))等
http://blog.csdn.net/weiqubo/article/details/69168801 volatile有些变量是用volatile关键字声明的。当两个线程都要用到某一个变量且该变量的值会被改变时,应该用volatile声明,该关键字的作用是防止优化编译器把变量从内存装入CPU寄存器中。如果变量被装入寄存器,那么两个线程有可能一个使用内存中的变量,一个使用转载 2013-08-02 11:12:46 · 890 阅读 · 0 评论 -
Node.js 究竟是什么?
http://www.ibm.com/developerworks/cn/opensource/os-nodejs/index.html简介如果您听说过 Node,或者阅读过一些文章,宣称 Node 是多么多么的棒,那么您可能会想:“Node 究竟是什么东西?” 即便是在参阅 Node 的主页之后,您甚至可能还是 不明白 Node 为何物?Node 肯定不适合每个程转载 2013-08-30 08:35:04 · 791 阅读 · 0 评论 -
使用 Google V8 引擎开发可定制的应用程序
http://www.ibm.com/developerworks/cn/opensource/os-cn-v8engine/index.htmlV8 引擎概览V8 引擎简介Google V8 引擎使用 C++ 代码编写,实现了 ECMAScript 规范的第五版,可以运行在所有的主流操作系统中,甚至可以运行在移动终端 ( 基于 AR转载 2013-08-30 08:30:08 · 1042 阅读 · 0 评论 -
gcc编译生成静态及动态链接库步骤
http://my.oschina.net/u/1270343/blog/167137这两天在看《Linux C程序设计大全》,吴岳编著,清华大学出版社。这本书是在一个培训机构看到的,在网上查了下该书的相关信息。从目录而言,该书涵盖了Linux下C程序设计的较多内容,包括C语言基础(主要讲解C语法结构)、C语言开发环境(主要介绍VIM使用、GCC使用、makefile编写、转载 2013-10-09 11:23:24 · 1316 阅读 · 0 评论 -
opensuse下利用youcompleteme补全boost库
1、安装boost 1.54,这个步骤网上到处都是,我都是默认安装,安装后的boost路径如下:ywh@linux-ywh:/usr/include/boost> pwd/usr/include/boost2、安装好vim、llvm_clang、youcompleteme,我的opensuse12.3默认安装的vim不支持python,只能卸载了从源码安装vim74原创 2013-10-30 13:51:18 · 8118 阅读 · 0 评论 -
auto_ptr、shared_ptr、weak_ptr、scoped_ptr用法小结
http://blog.csdn.net/qingcaichongchong/article/details/7554617转载 2013-11-08 18:54:59 · 1016 阅读 · 0 评论 -
windows下eclipse c++配置
1、从官网上下载eclipse 带cdt的版本、安装mingw,这些步骤网上到处都是2、新建一个c++工程,一路next,注意编译器那选mingw的那个3、设置外部库的头文件 左侧工程栏目里右键项目->properties->c/c++ build ->setting->gcc c++ complier ->includes 添加路径即可 添加 外原创 2014-03-19 16:05:35 · 3311 阅读 · 0 评论 -
华为机试第三篇
http://www.cnblogs.com/WJPeng/archive/2012/11/02/2750716.html一:给定一个字符串,寻找它的一个最大子字符串,该子字符串是回文。例如给定一个用例的字符串”gabcdcbaef”,那么最大回文 字串是”abcdcba”函数声明为void huiwen(char input[], int len, char output[]转载 2012-11-02 12:52:47 · 854 阅读 · 0 评论 -
C++类模板的三种特化
http://www.cppblog.com/SmartPtr/archive/2007/07/04/27496.html说起C++的模板及模板特化, 相信很多人都很熟悉 ,但是说到模板特化的几种类型,相信了解的人就不是很多。我这里归纳了针对一个模板参数的类模板特化的几种类型, 一是特化为绝对类型; 二是特化为引用,指针类型;三是特化为另外一个类模板。 这里用一个简单的例子来说明这转载 2012-10-29 09:59:30 · 617 阅读 · 0 评论 -
转 学习指针不可少的好文章 !
为初学者服务。这是我的帖子的宗旨。我也是个初学者(强调了无数遍了),我以我的理解把初学者觉得难懂的东西用浅显的语言写出来。由于小学时语文没学好,所以竭尽全力也未必能达到这个目的。尽力而为吧。 指针是c和c++中的难点和重点。我只精通dos下的basic。c语言的其它各种特性,在basic中都有类似的东西。只有指针,是baisc所不具备的。指针是c的灵魂。 我不想重复大多数书上说得很清楚的东转载 2007-05-02 20:07:00 · 1086 阅读 · 0 评论 -
C++异常处理须知
http://blog.csdn.net/hikaliv/archive/2009/05/24/4212864.aspx 帖子内容: http://blog.csdn.net/CARL_SEN/archive/2009/05/04/4148426.aspx第一部分:1. 异常发生时,异常对象会沿函数调用栈的反方向抛出,这个过程常称为栈转载 2012-08-29 22:31:43 · 671 阅读 · 0 评论 -
C++中, 构造函数和析构函数能不能被显示调用?
http://blog.csdn.net/g5dsk/article/details/4775089代码: #include using namespace std;class A{public: A() { cout } A(int ix) {转载 2012-08-29 21:43:57 · 1159 阅读 · 0 评论 -
ZeroMemory、memset 和“={0}” 用于清零操作的区别
链接 http://hi.baidu.com/why0813/blog/item/a7da283fa2a8bce555e723ef.html ZeroMemory、memset 和 “={0}” 三者用于清零操作的区别:首先是ZeroMemory和memset的区别:1、ZeroMemory是微软的SDK提供的,memset属于C Run-time Library转载 2012-08-29 22:04:26 · 796 阅读 · 0 评论 -
delete与delete [] 真正区别
我们通常从教科书上看到这样的说明:delete 释放new分配的单个对象指针指向的内存delete[] 释放new分配的对象数组指针指向的内存那么,按照教科书的理解,我们看下下面的代码:int *a = new int[10];delete a; //方式1delete [] a; //方式2肯定会有很多人说方式1肯定存在内存泄漏,是这样吗?1. 针对简单类型 使用转载 2012-08-30 10:23:04 · 405 阅读 · 0 评论 -
为什么通过空指针(NULL)可以正确调用一些类的成员函数?
原文:http://blog.csdn.net/starlee/article/details/2062586有下面的一个简单的类:class CNullPointCall{public: static void Test1(); void Test2(); void Test3(int iTest); void Test4(转载 2012-08-29 22:05:54 · 1732 阅读 · 0 评论 -
引发异常时, 编译器总是创建一个临时拷贝...
http://blog.csdn.net/g5dsk/article/details/5851614引发异常时, 编译器总是创建一个临时拷贝, 即使异常规范和 catch 块中指定的是引用.备注: 指定引用的目的并不是避免创建拷贝以提高效率, 而是基类引用可以执行派生类对象.// Code #include转载 2012-08-29 22:08:34 · 591 阅读 · 0 评论 -
C++类的大小
下面的内容是转载的,有关空类的大小和有虚函数的大小,其中有一个细节,yahoo有个面试官曾问我,指向虚表的那个指针在哪个位置,当时答不上来。后来查了下,这个跟编译器的实现有关系,可能在类地址的头四个字节,也可能在末尾的四个字节。http://www.cnblogs.com/luxiaoxun/archive/2012/09/01/2666395.html转载 2012-09-02 22:41:50 · 407 阅读 · 0 评论 -
C++中的临时对象都是const类型
http://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2622193.html先看代码: 1 #include 2 using namespace std; 3 4 class A {}; 5 6 class B 7 { 8 public: 9 B(){}10转载 2012-09-02 23:06:32 · 634 阅读 · 0 评论 -
C++ 多线程编程总结
http://www.cnblogs.com/zhiranok/archive/2012/05/13/cpp_multi_thread.html 在开发C++程序时,一般在吞吐量、并发、实时性上有较高的要求。设计C++程序时,总结起来可以从如下几点提高效率:l 并发l 异步l 缓存下面将我平常工作中遇到一些问题例举一二,其设计思想无非以上三点。转载 2012-09-02 11:37:09 · 546 阅读 · 0 评论 -
数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示
http://blog.csdn.net/bluishglc/article/details/7696085第一部分:实施策略图1.数据库分库分表(sharding)实施策略图解(点击查看大图)1.准备阶段对数据库进行分库分表(Sharding化)前,需要开发人员充分了解系统业务逻辑和数据库schema.一个好转载 2012-09-07 16:02:33 · 1565 阅读 · 0 评论 -
extern “C”总结
http://www.cnblogs.com/graphics/archive/2010/12/24/1916343.htmlextern “C”总结经常看到如下代码:#ifdef _cplusplusextern "C" {#endif#include "XXX.h"#ifdef _cplusplus转载 2012-09-09 18:56:02 · 668 阅读 · 0 评论 -
C++中的explicit关键字
http://www.cnblogs.com/graphics/archive/2010/08/05/1792749.htmlC++中的explicit关键字先看一下MSDN上关于explicit关键字的解释This keyword is a declaration specifier that can only be applied to in-c转载 2012-09-09 19:05:10 · 482 阅读 · 0 评论 -
探索C++对象模型
http://www.cnblogs.com/weiym/archive/2012/09/21/2697588.html阅读本文前最好已经读过 理解程序内存 和 理解C++变量存储模型 相关的内容, C++对象模型比较经典的书是《深度探索C++对象模型》, 但是书本的知识始终局限在理论上,熟话说“纸上得来终觉浅”,只有我们自已用工具经过验证,我们才能真正的理解这些知识。下面我们用W转载 2012-09-22 11:46:10 · 440 阅读 · 0 评论 -
Redis大冒险:如何跳出SQL这个坑
摘要:随着数据体积的激增,MySQL+memcache已经满足不了大型互联网类应用的需求,许多机构也纷纷选择Redis作为其架构上的补充,然而Redis的使用门槛并不低,比如不支持SQL等,这里为大家分享Redis的使用全攻略。转载 2014-04-24 13:43:46 · 1093 阅读 · 0 评论