摘要:
\(allocator类定义在头文件memory中,帮我们将内存分配和对象构造分离开来.\) \(它分配的内存时未构造.\) aallocator<string> alloc; // 定义可分配string的allocator对象 auto const p = alloc.allocate(n); 阅读全文
摘要:
shared_ptr类 \(与vector类似,智能指针也是模板.\) shared_ptr<string> p1; shared_pte<list<int>> p2; \(默认初始化的智能指针是一个空指针,与普通指针一样,解引用得到它指向的对象.\) if (p && p->empty()) *p 阅读全文
摘要:
\(new分配内存, delete释放new分配的内存.\) new \(在默认情况下,动态内存的对象是默认初始化的,所以内置类型或组合类型的对象的值是未定义的.\) string *ps = new string; // 初始化位空的string int *pi = new int // int的 阅读全文
摘要:
右值引用 \(所谓右值引用就是必须绑定到右值的引用.\\符号是\&\&.只能绑定到一个将要销毁的对象.\\因此.我们可以自由地将一个右值引用的资源"移动"到另一个对象.\) \(右值和左值都是表达式的属性.\\一般而言,一个左值表达的是一个对象的身份,而右值表达式表达是一个对象的值.\) \(类似任 阅读全文
摘要:
\(一个lambda表达式可以表示一个可调用的代码单元,可以将其理解成一个未命名的内联函数.\) \(一个lambda表达式具有一个返回类型,一个参数列表,一个函数体,与函数不同,它可能定义在函数内部.\) \(形式如下:\) [capture list](prarameter list) -> r 阅读全文