C/C++
文章平均质量分 53
阿迪spring
程序,读书,户外,骑行,科幻,偶尔研究点心理学
展开
-
编写类String的构造/析构函数,赋值操作符
class String{public: String(const char * str = NULL); //普通构造函数 String(const String &other); //复制构造函数 String & operator= (const String &other); //赋值操作符 ~String(); //析构函数private: char *m_原创 2014-05-18 21:39:12 · 449 阅读 · 0 评论 -
GDB用法小结
1. gdb exe 使得exe程序运行在debug环境下2. break functiona 在functiona函数处设置端点 3. run 让程序从main入口执行到断点functiona4. n next,单步执行,相当于VC中的调试命令step over5. s step into,进入子函数,察看子函数的执行情况6.转载 2014-07-01 14:24:14 · 528 阅读 · 0 评论 -
Linux下C++的通用Makefile与解析
本文给出万能Makefile的具体实现,以及对其中的关键点进行解析。所谓C++万能Makefile,即可编译链接所有的C++程序,而只需作很少的修改。号称万能Makefile,一统江湖。我对原版的Makefile做了些修改。首先揭开它的庐山真面目:##################################################### Generic makefile转载 2014-07-01 15:58:35 · 470 阅读 · 0 评论 -
vs2012下如何调试带输入参数的程序
vs2010下如何调试带输入参数的程序转载 2014-06-10 18:40:11 · 1938 阅读 · 0 评论 -
stl容器区别: vector list deque set map-底层实现
在STL中基本容器有: vector、list、deque、set、mapset 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问set:集合, 用来判断某一个元素是不是在一个组里面,使用的比较少map:映射,相当于字典,把一个值映射成另一个值,如果想创建字典的话使用它好了底层采用的是树型结构,多数使用平衡二叉树实现,查找某一值是常数时间,遍历起来效果也转载 2014-06-15 12:03:22 · 838 阅读 · 0 评论 -
一道关于奥运奖牌排序的题
vector算法classstringlesslist目录(?)[-]STL提供的Sort 算法所有sort算法介绍sort 中的比较函数sort 的稳定性全排序局部排序nth_element 指定元素排序partition 和stable_partitionSort 和容器选择合适的排序函数小结西方有句谚语:不要重复发明轮子!S原创 2014-06-16 16:09:07 · 2566 阅读 · 1 评论 -
const对象为什么可以在头文件中定义
首先明确两点:const对象默认为文件的局部变量。《C++ Primer 4》p86头文件用于声明而不是用于定义。《C++ Primer 4》p100,原创 2014-06-15 10:13:53 · 4504 阅读 · 0 评论 -
C/C++中的Split函数(字符串自动分割)
【转】C/C++中的Split函数(字符串自动分割)strtok()用来将字符串分割成一个个片段。参数str指向欲分割的字符串,参数delimiters则为分割字符串,当strtok()在参数str的字符串中发现到参数delimiters的分割字符时则会将该字符改为'\0'字符。在第一次调用时,strtok()必需给予参数str字符串,往后的调用则将参数str设置成NULL。C/C转载 2014-06-17 17:09:41 · 1388 阅读 · 0 评论 -
strtok字符串分割函数
functionstrtokchar * strtok ( char * str, const char * delimiters );Split string into tokensA sequence of calls to this function split str into tokens, which are sequences of conti转载 2014-06-17 18:23:10 · 439 阅读 · 0 评论 -
linux环境下的c++编程
就C++开发工具而言,与Windows下微软(VC, VS2005等)一统天下相比,Linux/Unix下C++开发,可谓五花八门,各式各样。Emacs, vi, eclipse, anjuta,kdevelop等层出不穷。Windows下,开发工具多以集成开发环境IDE的形式展现给最终用户。例如,VS2005集成了编辑器,宏汇编ml,C /C++编译器cl,资源编译器rc,调试器,文档生转载 2014-06-18 09:54:24 · 661 阅读 · 0 评论 -
(转)学习C++推荐书籍
(一)语言入门:《C++ Primer》最新版本:第三版(第四版国外已上架,国内一些网上书店也在预订中)适合有丰富C经验,缺乏C++经验的。不过我个人一直认为此书带着过于强烈的C语言的痕迹,对于C++的学习未必是好事。《The C++ Programming Language》/《C++程序设计语言》最新版本:第三版特别版简称TC++PL,有其他语言的丰富经验的。(转载 2014-06-18 10:25:54 · 553 阅读 · 0 评论 -
构造函数调用顺序
构造函数调用顺序:1》首先调用基类的构造函数(如果有基类);如果有多个基类,则按基类被列出的顺序调用;2》调用这个类的成员对象的构造函数(如果有的话);弱国有多个成员对象,则按成员对象定义的顺序被调用(与参数列表中咧出的顺序无关);3》最后调用这个类自身的构造函数;注意:弱国有虚基类,则先调用虚基类的构造函数。在调用基类的构造函数,如果有多个虚基类,则按列出的顺序调用; 析构函数与此相反转载 2014-09-27 19:30:47 · 2481 阅读 · 0 评论 -
gdb单步调试
看下面的程序:例 10.1. 函数调试实例#include int add_range(int low, int high){ int i, sum; for (i = low; i sum = sum + i; return sum;}int main(void){ int result[100]; result[0] = add_rang转载 2014-07-01 14:21:44 · 508 阅读 · 0 评论 -
C++ STL set小结
/*set/multiset会根据待定的排序准则,自动将元素排序。两者不同在于前者不允许元素重复,而后者允许。1) 不能直接改变元素值,因为那样会打乱原本正确的顺序,要改变元素值必须先删除旧元素,则插入新元素2) 不提供直接存取元素的任何操作函数,只能通过迭代器进行间接存取,而且从迭代器角度来看,元素值是常数3) 元素比较动作只能用于型别相同的容器(即元素和排序准则必须相同)set模板原转载 2014-07-01 09:34:05 · 457 阅读 · 0 评论 -
strcpy函数的实现
/*下面是我写的strcpy的实现有好多错误,正确的实现见该函数的下面。我已经注意到的问题:1.src指针要加const进行限定。防止内部修改src指向的内容。2.源字符串的末尾 '\0' 需要拷贝。未注意到的问题:1.需要返回目的指针dst,2.为检查目的指针的有效性,3.未考虑到内存重叠的问题。*/int strcopy(char *dst, const char *s原创 2014-05-18 16:23:40 · 497 阅读 · 0 评论 -
模板的声明和实现为何要放在头文件中?
http://www.gois.ws/showfile.asp?id=460:0:0如何组织编写模板程序 发表日期: 1/21/2003 12:28:58 PM 发表人: Nemanja Trifunovic前言常遇到询问使用模板到底是否容易的问题,我的回答是:“模板的使用是容易的,但组织编写却不容易”。看看我们几乎每天都能遇到的模板类吧,如STL, ATL, WT转载 2014-06-05 14:57:08 · 4169 阅读 · 0 评论 -
c语言运算符优先级巧记
醋坛酸味灌 味落跳福豆 共44个运算符 醋-初等,4个: ( ) [ ] -> 指向结构体成员 . 结构体成员 坛-单目,9个: ! ~ ++ -- -负号 (类型) *指针 &取地址 sizeof长度 酸-算术,5个: * / % + -减 味-位移,2个: > 灌-关系,6个: >= == 等于 != 不等于 味-位逻,3个: & 按位与 ^ 按位异或转载 2014-06-05 10:12:47 · 992 阅读 · 0 评论 -
函数模板和类模板成员函数的定义通常放在头文件中
今天写程序时,将函数模板的声明和定义f原创 2014-06-05 14:53:53 · 2866 阅读 · 0 评论 -
VS在连接期间的一个错误的处理:转换到 COFF 期间失败: 文件无效或损坏
WTL从低版本到高版本转换2个fatal error处理这两个fatal error是因为从低版本的WTL到高版本的WTL转变后产生的.错误描述如下:1>正在编译资源...1>正在编译资源清单...1>正在链接...1>CVTRES : fatal error CVT1100: 重复的资源。type:MANIFEST, name:1, language:0x04091>转载 2014-06-09 18:39:21 · 514 阅读 · 0 评论 -
三十分钟掌握STL
这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。译者:karycontact:[email protected]概述STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离转载 2014-06-30 09:45:10 · 501 阅读 · 0 评论 -
Linux下C++编程
[username@localhost cpp_stl]$ vi stl_main.cpp [username@localhost cpp_stl]$ g++ -Wall -c stl_main.cpp [username@localhost cpp_stl]$ lsstl_main.cpp stl_main.o[username@localhost cpp_stl]$ g++原创 2014-06-30 18:12:58 · 454 阅读 · 0 评论 -
比较两个int型数组的大小
一般大家都知道比较字符型数组大小的函数strcmp原创 2014-06-11 15:30:25 · 6155 阅读 · 0 评论 -
基类与派生类,父类指针指向子类对象
先来看一段程序:#include using namespace std;class Base_J {public: Base_J() { cout << "Base Created" << endl; } ~Base_J() { cout << "Base Destroyed" << endl; }};class Derived_J : public Ba原创 2014-06-11 11:30:29 · 9517 阅读 · 2 评论 -
删除单链表中重复的元素
今天同学突然让我帮他写个删除单链表中重复的元素这个程序,觉得很简单,就停下工作,写了一下。觉得在时间上,空间上都比较优化。 整体思路就是 遍历单链表,然后在判断当前节点是否在已访问的节点集合中,如果不在,说明该元素不重复,则将其插入到访问节点集合中,然后继续比较下一个节点,如果在其中,说明是重复出现,则从单链表中删除当前节点,然后继续比较下一个。 这里用了c++标准库中的set来保存访问过的元素,转载 2014-07-01 08:44:33 · 1818 阅读 · 0 评论 -
vim: 如何使粘贴到vim的代码排列整齐?
这个解决了我2个问题 在注释行回车或插入到下一行时 也是注释的 这个问题找了很久没弄好 没想到弄了这个后就好了 真是人品大大的好啊!!!!原文链接 http://linux.172baby.com/posts/125843.html随笔 linuxman 发表于2004-12-28 00:21粘贴到vim的代码,尤其是从WEB粘贴过来的代码,经常是一片混乱,看起来向右不断缩进造转载 2014-06-30 16:24:47 · 1116 阅读 · 0 评论 -
realloc,malloc,calloc的区别
三个函数的申明分别是: void* realloc(void* ptr, unsigned newsize); void* malloc(unsigned size); void* calloc(size_t numElements, size_t sizeOfElement); 都在stdlib.h函数库内它们的返回值都是请求系统分配的地址,如果请求失败就返回NULL转载 2014-10-31 16:26:45 · 454 阅读 · 0 评论