C++11
文章平均质量分 60
小文件
Night Flight
展开
-
同一作用域下函数名(变量名)可以覆盖类、结构体名
我们要定义一个使用默认构造函数构造的对象,有时可能出现下面的错误:className co() ;上面其实并没有定义对象co , 而是定义了一个名为co,类型为className ()的函数。之前也仅仅到此了,今天要用<sys/stat.h>下的stat函数,却突然发现其第二参数竟然是同名的stat , 为了区分二者,需要显式地定义参数为struct stat buf 。由此,查询了下,这才反应过来原创 2016-05-10 19:08:21 · 1183 阅读 · 0 评论 -
C++11 生成指定范围内的随机数
C++11中使用了一些名字有些难记的一系列函数来生成一个指定范围内随机数,不像C中那样简洁和直观。不过,为了使用标准C++11语法,尽可能抛弃C子集的函数,还是很有必要学习的。当然,主要还是今天开会,大家都在说要写博客。想想自己一直在搞pages,但是上面大多都是些影评什么的,已经不能当作技术博客了,索性接着写CSDN吧,把一些零散的东西记在这里也是不错的。闲话不说,下面是过程。参考了CPP官网,原创 2016-04-19 15:56:45 · 5187 阅读 · 1 评论 -
影响vector效率的关键
最近做一定规模的数据读取,二维vector,行约300k,每列大约10~100个int。一直在纠结以下问题:方法一:在循环的外边预先声明一个vector(预申请足够大空间),然后在循环内部做resize操作,然后对应位置直接赋值方法二:在循环的外边预先声明一个vector(预申请足够大空间),然后在循环内部做clear操作,然后再用push_back插入方法三:每次在循环中声明一个vector原创 2016-04-19 17:11:35 · 1930 阅读 · 0 评论 -
手动构造完全与`char *argv[]` 等价的参数
场景在main函数中的两个参数(int argc , char *argv[]),都是系统构造的。通常来说,我们只需要去解析即可,不需要去构造这样一个参数。然而,今天写代码时却不得不构造这样一个参数。原因是使用了一个第三方的模块(准确的说是基于第三方模块),第三方模块初始化时需要接受(int argc , char ** &argv)这样的参数。注意到其中的引用符号!通常来说,直接传递main函数的原创 2016-05-08 15:52:52 · 4193 阅读 · 0 评论