c++
文章平均质量分 65
c++ 学习
u010665493
这个作者很懒,什么都没留下…
展开
-
C++ 多线程编程,thread的间的交互 condition_variable
#include "stdafx.h"#include <typeinfo>#include <fstream>#include <iostream>#include <vector>#include <string>#include <memory>#include <deque>#include...原创 2020-02-23 16:38:01 · 744 阅读 · 0 评论 -
C++ 11 多线程 mutex (三) std::lock_guard,多种锁存在时确定加锁顺序的方式
struct BankAccount{ BankAccount(int n) : Balance(n) {} int Balance; std::mutex Mutex;}; void transferMoney(BankAccount &a, BankAccount &b, int money){ /******************************...原创 2020-02-22 15:37:08 · 565 阅读 · 0 评论 -
C++ 11 多线程 mutex (二) 利用标准库进行加锁
使用标准库std,进行加锁,同样能处理异常时,能正确离开的问题class Counter{public: Counter() : m_count(0),m_count2(0) {} ~Counter() {} void addcount() { std::lock_guard<std::mutex> lock(m_muter);// 这样子定义,则整个函数会加锁,...原创 2020-02-22 15:35:09 · 340 阅读 · 0 评论 -
C++ 11 多线程 mutex (一) 巧用类结构进行加锁,解锁
#include <atomic>#include <mutex>template<typename T> // 构造一个模板类,当在函数内部定义时, 构造时,进行加锁,析构时,进行解锁,class Lock { // 这个办法,可以解决在异常时,能准确地解锁,因为异常时,类也会进行析购,然后才轮到异常public: Lock(T&...原创 2020-02-22 13:36:28 · 1859 阅读 · 0 评论 -
c++ 原子操作
#include <atomic>class Counter{public: Counter() : m_count(0) {} ~Counter() {} void addcount() { m_count++; } int Getcount() const { return m_count; }private: std::atomic<int> ...原创 2020-02-22 11:17:56 · 210 阅读 · 0 评论 -
深入学习c++(lambda函数)(二)
参考:https://www.cnblogs.com/DswCnblog/p/5629165.html#include <algorithm> // 为了sort#include <iostream>#include <vector>[capture list] (params list) mutable exception->...转载 2020-02-21 14:38:40 · 101 阅读 · 0 评论 -
深入学习c++(STL之容器,stdset 第二部分)_recv
class Person {private: int m_age; std::string m_name;public: Person(int a, std::string b) : m_age(a), m_name(std::move(b)) {} int age() const { return m_age; } const std::string& name() co...原创 2020-02-20 11:24:00 · 113 阅读 · 0 评论 -
深入学习c++(STL之容器,stdset
#include <set>/* set multiset 是c++ 98中引入的二叉树数据结构 namespace std{ template<typename T,typename Compare = less<T>,typename Allocator = allocator<T>> class set; ...原创 2020-02-20 09:55:23 · 149 阅读 · 0 评论 -
深入学习c++(STL之容器,stdforward_list)
#include <#include <forward_list>>// vector 是 c++ 98中引入的动态数组namespace std { template<typename T,typename Allocator = allocator<T>> class forward_list;}// forward_list...原创 2020-02-19 21:00:22 · 255 阅读 · 0 评论 -
深入学习c++(STL之容器,stdlist)
#include <list>// vector 是 c++ 98中引入的动态数组namespace std { template<typename T,typename Allocator = allocator<T>> class list;}// 特点,不支持随机访问元素,访问头部和尾部元素速度快// 任何位置插入删除元素都很快,常量...原创 2020-02-19 19:08:26 · 121 阅读 · 0 评论 -
深入学习c++(STL之容器,stddeque)
#include <deque>// vector 是 c++ 98中引入的动态数组namespace std { template<typename T,typename Allocator = allocator<T>> class deque;}// 特点随机访问元素,末端添加删除元素,效率高,前嵯和中间删除和添加元素效率低,...原创 2020-02-19 12:30:41 · 153 阅读 · 0 评论 -
54:深入学习c++(STL之容器,stdvector)
// vector 是 c++ 98中引入的动态数组 namespace std { template<typename T,typename Allocator = allocator<T>> class vector; } // 特点随机访问元素,末端添加删除元素,效率高,前嵯和中间删除和添加元素效率低, // 存在当前空器大小和容量的关系 ...原创 2020-02-19 10:11:29 · 290 阅读 · 1 评论 -
深入学习c++智能指针相关
------------- c ++ ===============================alignas 字节对齐,以最小单位的来对齐, struct alignas(1) s {};typeid(a).name() 查找变量类型constexpr 定义在 函数前面,如果能直接求出来的值,会直接求出来在编译期间constexpr int fact(int n) { r...原创 2020-02-19 09:20:00 · 186 阅读 · 0 评论 -
48:深入学习c++(类 使用智能指针需要注意的几个“坑”)
// 一个祼的指针不要用二个shared_ptr管理,unique_ptr;// 下面是错误例子,一个指针,二个管理,但他们引用各为1,如果其中一个构析了,会导至另一个正在使用的会异常auto pObj = new Object(1);ObjectPtr = Obj(pObj);ObjectPtr = Obj(pObj2);// 用weakptr打破循环引用,parent 和 chil...原创 2020-02-19 09:18:41 · 442 阅读 · 0 评论 -
49:深入学习c++(lambda函数, 简单介绍)
:类似lua的函数内部定义的局部函数template<typename Func>void printUseFunc(Func func, int a, int b, int c){ func(a, b, c);}void testlambda(){ int a = 1; int b = 2; int c = 3; auto lo...原创 2020-02-19 09:17:41 · 90 阅读 · 0 评论 -
53:深入学习c++(STL之容器,stdarray)
template<typename T,typename s_size>std::array<int ,10> a; // 定义数组大小为10 ,类型为int的数组std::array<int ,10> a = {}; // c++ 11用法,初始化std::array<int ,5> a = {1,2,3,4,5,6}; 挨个初始值std:...原创 2020-02-19 09:16:49 · 187 阅读 · 0 评论