摘要:
Linux的变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1 永久的:需要修改配置文件,变量永久生效。 2 临时的:使用export命令声明即可,变量在关闭shell时失效。 设置变量的三种方法 1 在/etc/profile文件中添加变量【对所有用户生效(永久的)】 用VI在文件/ 阅读全文
摘要:
std::move的定义如下: 通过引用折叠,此参数可以与任何类型的实参匹配,既可以传递给move一个左值引用也可以传右值引用,如: string s1("hi"), s2; s2 = std::move(string("bye1!"));//正确,从一个右值移动数据 s2 = std::move( 阅读全文
摘要:
当传入对象时,函数有时会需要拷贝该对象并存入容器中,例如: 类定义: 函数定义: 然而此时,add_item并不知道要分配的类型。当add_item进行内存分配时,它将拷贝sale参数,如 然而这条表达式却可能是不正确的:new为我们请求的类型分配内存,因此它将分配一个Quote类型的对象并拷贝sa 阅读全文
摘要:
一、概述 移动构造函数可以弥补拷贝构造函数的空缺。 移动语义,简单来说解决的是各种情形下对象的资源所有权转移的问题。而在C++11之前,移动语义的缺失是C++饱受诟病的问题之一。 举个栗子。 问题一:如何将大象放入冰箱?答案是众所周知的。首先你需要有一台特殊的冰箱,这台冰箱是为了装下大象而制造的。你 阅读全文
摘要:
有一个要注意的地方,以前不理解在while里面用cin >> val是什么意思,用这个当条件的话,通过检测其流的状态来判断结束; (1)若流是有效的,即流未遇到错误,那么检测成功; (2)若遇到文件结束符,或遇到一个无效的输入时(例如本题输入的值不是一个整数),istream对象的状态会变为无效,条 阅读全文
摘要:
1 int main(int argc, char** argv) 2 { 3 4 5 int array[] = { 1,2,1,4 }; 6 int top = 0, second = 1; 7 for (size_t i = 1; i < 4; i++) 8 { 9 if (array[i] < array[top]) ... 阅读全文
摘要:
一、简介 我们可以向一个算法传递任何类别的可调用对象。对于一个对象或一个表达式,如果可以对其使用调用运算符,则称它为可调用的。即,如果e是一个可调用的表达式,则我们可以编写代码e(args),其中args是一个逗号分隔的一个或多个参数的列表。 可调用对象分别有:1、函数和函数指针;2、重载了函数调用 阅读全文
摘要:
1 引言 众所周知,操作系统使用伙伴系统管理内存,不仅会造成大量的内存碎片,同时处理效率也较低下。SLAB是一种内存管理机制,其拥有较高的处理效率,同时也有效的避免内存碎片的产生,其核心思想是预分配。其按照SIZE对内存进行分类管理的,当申请一块大小为SIZE的内存时,分配器就从SIZE集合中分配一 阅读全文
摘要:
转载:http://hi.baidu.com/freelonely/blog/item/340341077c4d287302088189.html 预对齐内存的分配 在大多数情况下,编译器和C库透明地帮你处理对齐问题。POSIX 标明了通过malloc( ), calloc( ), 和 reallo 阅读全文
摘要:
文件夹结构 D:\test A Folder 1 | A file 1.txt | A file 2.txt | A file 3.txt B Folder 2 | B file 1.txt | B file 2.txt | B file 3.txt | B Folder 3 | B sub fil 阅读全文