C++
文章平均质量分 82
zjufirefly
这个作者很懒,什么都没留下…
展开
-
boost安装
下载http://www.boost.org/安装文件解压在/usr/local/目录下在/usr/local/boost-*目录下,执行./bootstrap.sh在/usr/local/boost-*目录下,执行sudo ./bjam --layout=versioned --build-type=complete --toolset=gcc install 在/原创 2014-12-25 14:21:57 · 5011 阅读 · 0 评论 -
Effective C++ -- 继承与面向对象设计
32.确定你的public继承塑模出is-a关系public继承意味着is-a的关系(里氏代换原则),适用于基类的每一件事也适用于继承类。 矩形继承正方形问题: - 可实施与矩形的操作无法实施与正方形 - 在编程领域,正方形是一种矩形是错误的 - 在现实领域,正方形是一种矩形是正确的原创 2015-03-18 17:15:38 · 4755 阅读 · 0 评论 -
Effective C++ -- 构造析构赋值运算
05.了解C++默默编写并调用哪些函数编译产生的析构函数时non-virtual,除非这个类的基类析构函数为virtual成员变量中有引用和const成员时,无法自动生成copy assignment函数基类将copy assignment操作符声明为private时,编译器拒绝为其derived classes生成一个copy assignment操作符。06.若不想使用编译器自动生原创 2015-03-14 22:29:37 · 4708 阅读 · 0 评论 -
Effective C++ -- 资源管理
13.以对象管理资源 void f() { Investment* pInv = createInvestment(); ... delete pInv; }以上代码存在问题:在delete之前出现异常,导致pInv无法删除,造成资源泄露。解决方法:RAII Resource Acq原创 2015-03-17 14:24:20 · 4714 阅读 · 0 评论 -
Effective STL -- vector和string
13.vector和string优先于动态分配的数组使用vector和string和数组相比,减少了管理内存的工作量。可以使用begin,end,size等函数vector和string拥有iterator,value_type等类型定义。注意事项:string可能使用引用计数,在多线程环境下同步可能会导致性能变差。14.使用reserve来避免不必要的内存分配vector超过容量原创 2015-03-17 14:34:36 · 4783 阅读 · 0 评论 -
Effective C++ -- 让自己习惯C++
01.视C++为一个语言联邦CObject-Oriented C++Template C++STL过程形式(procedural),面向对象形式(object-oriented),函数形式(functional),泛型形式(generic),元编程形式(metaprogramming)问题:泛型形式和元编程形式的区别?过程形式和函数形式的区别?结论:原创 2015-03-11 21:38:34 · 4759 阅读 · 0 评论 -
Effective STL -- 容器
01.慎重选择容器类型选择容器原则:需要考虑元素的排序情况,是否与标准相符,迭代器能力,元素布局,与C的兼容性,查找速度,引用计数,插入删除对事物语义的支持,某些操作是否会使迭代器无效,内存分配策略。vector需要使用随机迭代器容器中布局需要与C兼容deque需要使用随机迭代器当大多数插入在头部和尾部时在尾部插入不会是迭代器,指针,原创 2015-03-13 15:27:40 · 4752 阅读 · 0 评论 -
Effective C++ -- 设计与声明
18.让接口容易被正确使用问题:接口的参数接口依赖其他调用class Date {public: Date(int month,int day, int year;}以上代码问题:容易以错误的顺序传递参数可能传递无效的月份或天数 解决方法:通过导入新类型获得预防struct Day { explicit Day(int):val(d){} int val;原创 2015-03-18 11:05:43 · 4718 阅读 · 0 评论 -
设计课题,中间件方案,ACE
网络程序复杂性固有复杂性,由所在领域存在的主要难题造成选择合适的通信机制,并设计良好的协议来有效使用这些机制有效使用并发机制,使系统获得可预计的,可靠的高性能设计合理网络服务,以有效利用现有计算资源,并降低将来的维护成本管理和配置服务,以获得最大程度的系统可用性和灵活性偶发复杂性,源自开发网络应用软件时使用的工具和技术缺乏类型安全,可移植,可扩充的原始os api算法分解的广泛使用,无谓地原创 2015-05-23 17:07:43 · 4927 阅读 · 0 评论 -
STL Support Tools
When you try to use GDB's "print" command to display the contents of a vector, a stack, or any other GDB abstract data structure, you will get useless results. Instead, download and install one of fol转载 2015-07-01 16:05:40 · 4860 阅读 · 0 评论 -
站在巨人的肩膀上,C++开源库大全
http://blog.csdn.net/chen19870707/article/details/40427645程序员要站在巨人的肩膀上,C++拥有丰富的开源库,这里包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自转载 2015-07-01 16:42:52 · 5283 阅读 · 1 评论 -
C++二义性语法
以标准输入装置完成初始化操作原创 2014-05-12 21:31:32 · 551 阅读 · 0 评论 -
为何迭代器前置式递增比后置式递增效率要高
后置式需要一个额外的临时对象,因为它必须存放迭代器的原本位置并将它返回。所以一般使用++itr,而不要使用itr++。原创 2014-05-04 22:14:00 · 1177 阅读 · 0 评论 -
《C++ Primer》作者Stanley B.Lippman谈C++语言和软件产业的发展
C++ Primer》作者Stanley B.Lippman谈C++语言和软件产业的发展发表于2013-12-04 11:06| 31580次阅读| 来源《程序员》| 119 条评论| 作者高博,范德成《程序员》杂志2013年12月刊c++计算机科学软件工程师Stanley B.Lippman摘要:《C++ Primer》作者Stanley B.Lippma转载 2014-05-02 11:48:26 · 1161 阅读 · 0 评论 -
摘录的一些Bjarne Stroustrup关于C++的谈话内容
1 专访 Bjarne Stroustrup2 C++ 热点问题一席谈3 C++0x 热点问题访谈4 C++0x 概览专访 Bjarne Stroustrup 来源:荣耀 马皓明 译 作者:Bjarne Stroustrup 等级:一般 发布于2005-10-22 22:54 被读1091次 【字体:大 中 小】 Bjarne S转载 2014-05-02 12:30:01 · 1269 阅读 · 0 评论 -
C++语法杂项1
1.拷贝构造函数必须为引用或者常量引用,否则编译无法通过。因为是普通的传值,需要先构造临时对象,会再次调用拷贝构造函数,造成递归。所以拷贝构造函数的入参不能为普通传值。原创 2014-05-06 22:53:50 · 533 阅读 · 0 评论 -
常用头文件
1.pair#include 2.auto_ptr头文件#include原创 2014-05-06 23:19:16 · 542 阅读 · 0 评论 -
STL容器类异常
vector1.如果push_back()安插元素时发生异常,该函数不起作用。2.原创 2014-05-12 22:19:03 · 879 阅读 · 0 评论 -
使用隐式转换auto_ptr导致程序崩溃原因
执行以下代码将导致程序崩溃,原因是什么?#include "stdafx.h"#include #include #include #include using namespace std;class A{};int _tmain(int argc, _TCHAR* argv[]){A* pa = new A();auto_ptr api = pa;return 0;}原创 2014-05-02 18:01:11 · 995 阅读 · 0 评论 -
为什么需要auto_ptr_ref
这几天开始拜读侯捷先生和孟岩先生的译作《C++标准程序库:自修教程与参考手册》 。两位先生确实译功上乘,读得很顺。但是读到P55页关于auto_ptr_ref的讨论,却百思不得其解:为什么需要引入auto_ptr_ref这个辅助类呢? 从书中描述来看,仿佛与拷贝构造函数 、右值 、类型转换 有关。于是,结合auto_ptr的源代码,google之、baidu之,找了一推资料,终于初转载 2014-05-03 16:57:35 · 490 阅读 · 0 评论 -
list中如何查找两个元素间的某个元素
解决方法1:如果使用的是vector容器,vector容器的迭代器为随机迭代器,可以使用operator<进行比较。解决方法2:分段查找,先找到一个迭代器,以这个迭代器分界,分别在起点到这个迭代器,这个迭代器到终点进行查找另一个迭代器。代码如下:原创 2014-05-04 22:15:49 · 1519 阅读 · 0 评论 -
如何为排序,查找,set,map提供自定义比较功能
set按照operator<重载操作符比较规则从小到大排序set<type> setValue;set<type,less<type> > setValue;原创 2014-05-04 22:12:15 · 826 阅读 · 0 评论 -
设置系统路径
增加.so搜索路径export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/liheyuan/soft/lib增加.a搜索路径LIBRARY_PATH=$LIBRARY_PATH:/home/liheyuan/soft/lib增加bin搜索路径export PATH=$PATH:/home/liheyuan/soft/bin增加GCC的include文件搜索路径ex原创 2015-07-08 09:44:04 · 4979 阅读 · 0 评论