C/C++
Mr-Yuxuan
我是一粒小小程序员
展开
-
浅谈RAII&智能指针
关于RAII,官方给出的解释是这样的“资源获取就是初始化”。听起来貌似不是很懂的哈,其实说的通俗点的话就是它是一种管理资源,避免内存泄漏的一种方法。它可以保证在各种情况下,当你对对象进行使用时先通过构造函数来进行资源的分配和初始化,最后通过析构函数来进行清理,有效的保证了资源的正确分配和释放。(特别是在异常中,因为异常往往会改变代码正确的执行顺序,这就很容易引起资源管理的混乱和内存的泄漏) 其中原创 2016-06-11 14:12:33 · 245 阅读 · 0 评论 -
浅析在类模版中构建成员函数时,使用memcpy产生的副作用
一般情况下我们在对类模版中的成员函数进行构建时会经常对一些数据进行复制拷贝,而通常情况下我们都不提倡用memcpy进行拷贝,因为在类模版中所传进来的类型可以是内置类型也可以是非内置类型,除非你在成员函数中使用memcpy前进行类型萃取,否则它所带来的副作用的后果也是很可怕的。memcpy在对内置类型可正常拷贝,而在对非内置类型拷贝时会出现浅拷贝的现象。 下面我们可以通过一个简单的顺序表程序来分析原创 2016-06-11 14:12:29 · 867 阅读 · 0 评论 -
strlen strncat strstr 三种库函数的代码实现
首先我们来看strlen函数,它主要是求一个字符串的长度,所以返回的应该是int型类型,其主要方法是将字符串从头到尾进行遍历时进行计数,因此实现起来并不是很难,其主要函数代码如下:int length(char *p){ int len = 0; while (*p != 0) { len++; p++; } return len;}因为字符长度是不包括‘\0’,所以返回时不用进行+1操作。原创 2016-06-11 14:12:19 · 974 阅读 · 0 评论 -
实现对编译出来的名次进行顺序排序
前几天,鹏哥在作业中给出了这样一道题: 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第一,我第三。 B选手说:我第二,E第四。 C选手说:我第一,D第二。 D选手说:C最后,我第三。 E选手说:我第四,A第一。 比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。这道题相信很多人都知道,程序写起来也不是特别难,其主要的源程序如下:#includeint原创 2016-06-11 14:12:16 · 307 阅读 · 0 评论 -
字符串格式化时间戳
直接上代码,很好用! string str2time(const string &strTime) { struct tm sTime; sscanf(strTime.c_str(), "%d-%d-%d %d:%d:%d", &sTime.tm_year, &sTime.tm_mon, &sTime.tm_mday, &sTime.tm_hour,...原创 2018-10-12 20:34:21 · 660 阅读 · 0 评论