2013年10月5日

i++ ++i的原子性

摘要: http://bbs.chinaunix.net/thread-1794304-1-1.htmlhttp://blog.csdn.net/sapair/article/details/4243974[i=s] 本帖最后由 w_anthony 于 2010-09-30 15:51 编辑 [/i]++i首先要看编译器是怎么编译的,某些编译器比如VC在非优化版本中会编译为以下汇编代码:__asm{ mov eax,dword ptr[i] inc eax mov dword ptr[i], eax}这种情况下,必定不是原子操作,不加锁互斥是不行的。假设加了优化参数,那么是否一定会编译为“inc... 阅读全文

posted @ 2013-10-05 10:42 没有什么能够阻挡 阅读(836) 评论(0) 推荐(0) 编辑

2013年10月2日

【转】程序员面试笔试宝典

摘要: 《程序员面试笔试宝典》网络版,有些内容还是值得一看的。http://blog.csdn.net/xdhehao/article/details/10043747http://blog.csdn.net/xdhehao/article/details/7752669http://blog.csdn.net/xdhehao/article/details/7749312 阅读全文

posted @ 2013-10-02 11:27 没有什么能够阻挡 阅读(137) 评论(0) 推荐(0) 编辑

2013年9月17日

【转】函数调用栈 格式化操作

摘要: 函数调用栈 http://www.cnblogs.com/taek/archive/2012/02/05/2338877.htmlcout 格式化操作:http://www.cnblogs.com/devymex/archive/2010/09/06/1818754.htmlsprintf 格式化操作:http://www.cnblogs.com/wubiyu/archive/2008/11/30/1344202.html 阅读全文

posted @ 2013-09-17 21:03 没有什么能够阻挡 阅读(126) 评论(0) 推荐(0) 编辑

【转】TCP三次握手过程

摘要: 写的非常明白:http://www.cnblogs.com/rootq/articles/1377355.htmlTCP协议三次握手过程分析TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence number(顺序号码) Acknowledge 阅读全文

posted @ 2013-09-17 18:13 没有什么能够阻挡 阅读(205) 评论(0) 推荐(0) 编辑

2013年9月16日

一些面试题

摘要: 1. 介绍红黑树2. 平衡二叉树,构建,插入3. 堆构建4. 面向对象三个基本特征http://www.cppblog.com/snowball/archive/2008/07/01/55051.html5. STL六大组件http://blog.csdn.net/huayehanshan/article/details/3864191http://blog.tianya.cn/blogger/post_show.asp?BlogID=53321&PostID=469574Containers : 实现基本的数据结构, 如 vector\list\map\Allocators: 负责空 阅读全文

posted @ 2013-09-16 14:57 没有什么能够阻挡 阅读(213) 评论(0) 推荐(0) 编辑

2013年9月13日

主定理

摘要: 阅读全文

posted @ 2013-09-13 10:16 没有什么能够阻挡 阅读(149) 评论(0) 推荐(0) 编辑

2013年9月3日

【转】HP(惠普)大中华区总裁孙振耀退休感言

摘要: 一、关于工作与生活我有个有趣的观察,外企公司多的是25-35岁的白领,40岁以上的员工很少,二三十岁的外企员工是意气风发的,但外企公司40岁附近的经理人是很尴尬的。我见过的40岁附近的外企经理人大多在一直跳槽,最后大多跳到民企,比方说,唐骏。外企员工的成功很大程度上是公司的成功,并非个人的成功,西门子的确比国美大,但并不代表西门子中国经理比国美的老板强,甚至可以说差得很远。而进外企的人往往并不能很早理解这一点,把自己的成功90%归功于自己的能力,实际上,外企公司随便换个中国区总经理并不会给业绩带来什么了不起的影响。好了问题来了,当这些经理人40多岁了,他们的薪资要求变得很高,而他们的才能其实又 阅读全文

posted @ 2013-09-03 20:08 没有什么能够阻挡 阅读(215) 评论(0) 推荐(0) 编辑

9. memcpy() memccpy() memmove() strcpy() memset()

摘要: 部分参考:http://www.cppblog.com/kang/archive/2009/04/05/78984.html表头文件: #include 定义函数: void *memcpy(void *dest, const void *src, size_t n)函数说明: memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'\0'而结束 strcpy()只能用于字符串的copy,而memcpy()可用于任意类型,包括数组、结果体、对象(硬拷贝);此外,m 阅读全文

posted @ 2013-09-03 18:47 没有什么能够阻挡 阅读(452) 评论(0) 推荐(0) 编辑

8. 排序总结

摘要: 一. 时空复杂度转自:http://blog.chinaunix.net/uid-21457204-id-3060260.html二、实现代码http://blog.csdn.net/touch_2011/article/details/6767673 漫谈经典排序算法 对《数据结构》上的算法总结得很好,主要对着实现了一遍。与书一致,为了叙述方便,以下源代码中均不考虑A[0],默认下标从1开始。//-------------插播一段交换int a, b两个数据值的方法------------------------------------方法一:使用异或^操作符。void swap(int & 阅读全文

posted @ 2013-09-03 15:50 没有什么能够阻挡 阅读(188) 评论(0) 推荐(0) 编辑

2013年8月31日

7. 二叉树遍历( 先序、中序、后序 递归 非递归 )

摘要: RT, 部分参考了《剑指offer》#pragma once#include #include #include using namespace std;struct BinaryTreeNode { int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;};class BinaryTree{public: BinaryTreeNode* Construct(int preorder[], int inorder[], int length); // 根据先序、中序结果构造二叉树 Binar... 阅读全文

posted @ 2013-08-31 21:20 没有什么能够阻挡 阅读(298) 评论(0) 推荐(0) 编辑

2013年8月28日

6. 指针与数组名

摘要: 看了文章:http://blog.csdn.net/porscheyin/article/details/3461565归纳总结一下:(1)可以将一个T类型数组的名字赋给一个相同类型的指针。当有语句char ary[100] = {'a', 'b', 'c', 'd','e', 'f'}; char *cp = ary;后,cp就指向了数组array中的第一个元素。我们可以通过指针来访问数组的元素:printf("%d", *cp);此语句的作用是打印出cp所指向的元素的值,也就 阅读全文

posted @ 2013-08-28 20:52 没有什么能够阻挡 阅读(249) 评论(0) 推荐(0) 编辑

2013年8月27日

5. c++ 内存管理 C/C++ 内存机制

摘要: 参考自:http://blog.csdn.net/wpf_ml/article/details/77599111. 内存,Cache,寄存器内存:通常计算机将数据存放在物理内存,cache及寄存器中。与其它两个数据存储方式相比,内存是比较大的。每个内存单元是通过内存地址来访问的并且内存单元是必须是联系的。不同的体系架构内存管理方式不同,在一些系统架构中部分内存用业访问物理设备(这种方式叫做内存映射I/O)。Cache: 是一个小型的内存,一级Cache直接存放在CPU中,或是二级Cache存放在主板上。Cache存放内存中最近使用过的一个拷贝,使其加载速度更快。因为Cache被硬件隐藏我们通常 阅读全文

posted @ 2013-08-27 16:52 没有什么能够阻挡 阅读(817) 评论(0) 推荐(0) 编辑

4. c++ 静态 对象

摘要: 参考自文章:http://blog.csdn.net/wpf_ml/article/details/77635341. 静态存储变量定义在函数外或是用static 关键字修饰的变量存放在静态存储区(独立于堆和栈),放在静态存储区的数据在整个程序运行期间持续有效。既然在程序的整个生命周期都存在,这样的好处就是非常容易进行内存管理。1.1 静态变量可以依据linkage分为以下三类:(1) external linkage (2)internal linkage (3)no linkage下面例子就是静态变量的不同作用域的示例.int a= 1;static int b = 2;int main( 阅读全文

posted @ 2013-08-27 16:30 没有什么能够阻挡 阅读(259) 评论(0) 推荐(0) 编辑

2013年8月26日

3. 拷贝构造函数

摘要: 参考文章:http://www.cnblogs.com/aoguren/p/3264138.html 阅读全文

posted @ 2013-08-26 17:22 没有什么能够阻挡 阅读(99) 评论(0) 推荐(0) 编辑

2. Singleton模式

摘要: 这两种方法都提到了使用模版:(1) 参考文章:http://www.cnblogs.com/08shiyan/archive/2012/03/16/2399617.html不同: a. 该方法直接使用auto_ptr来释放指针所指资源; 但auto_ptr在C++11中被 unique_ptr 替代了; b.将 Singleton类的构造和析构函数设为private型, 然后使用 friend 函数(宏定义,这里我给替换回来了)来访问这两个函数, 以构造和析构对象。// Singleton.h 模版类template class Singleton { public: ... 阅读全文

posted @ 2013-08-26 16:47 没有什么能够阻挡 阅读(292) 评论(0) 推荐(0) 编辑

2013年8月23日

1. 转换相关的关键字

摘要: c++有哪4个类型转换相关的关键字?各有什么特点,应该在什么场合下使用?答: 相对于c风格的强制类型转换: (摘自:http://blog.sina.com.cn/s/blog_4b20940201013ryp.html) (T) expression; // cast expression to be of type T 或 T(expression) c++风格(新风格)的强制转换分为4中类型: 分别为 I. const_cast() : 一般用于消除对象的常量性。即:将一个const对象 转换为 非const 类型对象。 它是C++风格中进行此类转换的唯一方法... 阅读全文

posted @ 2013-08-23 17:35 没有什么能够阻挡 阅读(171) 评论(0) 推荐(0) 编辑

2013年8月14日

typedef 用法及 指针函数 和 函数指针

摘要: typedef 本质上是定义了一种新的类型, 该新类型可以原有类型的别名或是原有类型的组合。而#define 只是字符串的替换。如定义: typedef char* CHARP;则 CHARP a, b; 等价于 char* a; char* b;而定义: #define char* CHARP;则 CHARP a, b; 等价与 char* a, b;即 char* a; char b;http://www.cnblogs.com/csyisong/archive/2009/01/09/1372363.html给出了总结。指针函数本质是一个返回值为指针类型的函数名;函数指针本质上是一个指向特 阅读全文

posted @ 2013-08-14 16:28 没有什么能够阻挡 阅读(193) 评论(0) 推荐(0) 编辑

2013年6月20日

【转】VS调试技巧

摘要: 【转自】http://blog.csdn.net/ghttzsqgm/article/details/5326894 http://blog.csdn.net/cadcisdhht/article/details/5649681下面有从浅入深的4个问题,您可以尝试回答一下1. 一个如下的语句for (int i = 0; i x的某个index的值,输入:((x)._Myfirst)[index] 阅读全文

posted @ 2013-06-20 22:55 没有什么能够阻挡 阅读(274) 评论(0) 推荐(0) 编辑

2013年6月7日

C++ 代码折叠

摘要: 对代码的某一段,如大段的for循环,可以使用#pragmaregion name (如"下段代码用于处理XXXX" )for() for(){.........///很长的代码,可以被折叠起来}#pragmaendregion 阅读全文

posted @ 2013-06-07 17:35 没有什么能够阻挡 阅读(658) 评论(0) 推荐(0) 编辑

2013年5月9日

cin 文件结束符

摘要: 看了网上说的,c++的cin会检查“Ctrl + z”(Windows下)或“Ctrl + d" (Linux/Unix下)来判断输入是否结束。其本质是检查cin.bad()的调用结果,若为true,则结束输入。对于下面这两种情况:1) int val; vector<int> vals; while( cin >> val) { vals.push_back(val); }2) string val; vector<string> vals; while( cin >> val) { vals.push_ba... 阅读全文

posted @ 2013-05-09 11:03 没有什么能够阻挡 阅读(607) 评论(0) 推荐(0) 编辑

导航