
C++ 1z
文章平均质量分 75
zt_xcyk
小小程序员
展开
-
深入应用C++11 笔记 (二)
深入应用C++11 笔记 (二)第一章 程序简洁之道1.3 初始化列表给类添加一个std::initializer_list构造函数,它将拥有任意长度初始化的能力。class Foo{public:Foo(std::initializer_list) {}};Foo foo = { 1,2,3,4,5 };//OK使用initializer_list来接收原创 2018-01-25 16:07:33 · 505 阅读 · 0 评论 -
深入应用C++11 笔记---条件变量 (八)
深入应用C++11 笔记(八)—条件变量 +原子变量+call_once/once_flag条件变量 条件变量是C++11 提供的另外一种用于等待的同步机制,它能阻塞一个或多个线程,直到收到另外一个线程发出的通知或者超时,才会唤醒当前阻塞的线程。条件变量需要和互斥量配合起来用。condition_variable,配合std::unique_lock\#inc...原创 2018-07-03 16:44:34 · 620 阅读 · 0 评论 -
深入应用C++11 笔记---互斥量 (七)
深入应用C++11 笔记—互斥量 (七)互斥量互斥量是一种同步原语,是一种线程同步的手段,用来保护多线程同时访问共享数据。C++11中提供如下4种语义的互斥量(mutex):std::mutex:独占的互斥量,不能递归使用std::timed_ mutex:带超时的独占互斥量,不能递归使用std::recursive_mutex:递归互斥量,不带超时功能std::recu...原创 2018-07-03 13:06:32 · 497 阅读 · 0 评论 -
深入应用C++11 笔记---多线程 (六)
C++11 多线程1. 线程的创建使用线程函数或者函数对象,并且可以同时制定线程函数的参数#include<thread>void func(){/*do something*/}int main(){ std::thread t(func); t.join();//阻塞线程,直到函数执行结束 //t.detach(); 将线程和线程对象分离...原创 2018-07-03 08:56:51 · 441 阅读 · 0 评论 -
深入应用C++11 笔记---智能指针 (五)
深入应用C++11 笔记 (五)第二章 C++11 解决内存泄漏的问题 在C++中解决内存泄漏的有效方法是使用智能指针(Smart Pointer)。智能指针和普通指针的用法类似,只是不需要手动释放内存,而是通过智能指针自己管理内存释放。 智能指针是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保在离开指针所在作用域时,自动正确的销毁动态分配的对象,防止内...原创 2018-07-03 08:53:47 · 519 阅读 · 0 评论 -
深入应用C++11 笔记(四)
深入应用C++11 笔记(四)第一章 程序简洁之道1.8 tupe元组构造tuple //头文件为: <tuple> 使用make_tuple 构造一个tuplechar* sendPack;int nSendSize;tuple<const char*, int> tp = make_tuple(sendPack, nSendSize...原创 2018-05-05 14:58:04 · 601 阅读 · 0 评论 -
C++ 11 可变模板参数详解
C++ 11 可变模板参数详解1. 概述 可变模板参数(variadic templates)是C++ 11新增的最强大的特性之一,它对参数进行高度泛化,它能表示0到任意个数、任意类型的参数。2. 可变模板参数的展开 可变参数模板和普遍模板的语义是一样的,只是写法上稍有区别,声明可变参数模板时需要在typename或class后面带上省略号“…”。例如://template<class.转载 2017-06-29 15:24:48 · 6006 阅读 · 1 评论 -
深入C++11 笔记
深入应用C++11 笔记 (一)第一章 程序简洁之道1.1 类型推导auto类型推导 (auto–> 类型指示符 type-specifier)auto x=5; //OK:x-->intauto pi=new auto(1); //OK:pi-->int*const auto *v=&x,u=6; //OK:v-->const原创 2018-01-16 15:06:14 · 427 阅读 · 0 评论 -
深入应用C++11 笔记 (三)
深入应用C++11 笔记 (三)第一章 程序简洁之道1.5 std:function可调用对象是一个函数指针是一个具有operator()成员函数的类对象(仿函数)是一个可被转换为函数指针的类对象是一个类成员(函数)指针void func(void){//...}struct Foo{void operator()(void){ //.原创 2018-01-31 14:32:00 · 383 阅读 · 0 评论 -
深入应用C++11 笔记---异步操作 (九)
深入应用C++11 笔记—异步操作 (九)异步操作C++11 提供了异步操作相关的类: * std::future 作为异步结果的传输通道,用于获取线程函数的的返回值; * std::promise用于包装一个值,将数据和future绑定起来,方便线程赋值; * std::package_task将函数和future绑定起来,以便异步调用。1.1 获取线程函数返回值的...原创 2018-07-05 18:33:13 · 689 阅读 · 0 评论