深入应用C++11
代码优化&&工程应用
楼兰公子
这个作者很懒,什么都没留下…
展开
-
[C++]A*算法实例
//============================================================================// Name : a_start.cpp// Author : // Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//=======================.原创 2021-07-07 20:20:39 · 153 阅读 · 0 评论 -
[C++]生产者消费者模型
#ifndef STDCONDITION_HPP#define STDCONDITION_HPP#include <queue>#include <chrono>#include <mutex>#include <thread>#include <iostream>#include <condition_variable>int test_condition() { std::queue<int> ...原创 2021-01-05 12:35:45 · 119 阅读 · 0 评论 -
std::remove_if为什么无法删除队列中符合条件的元素
因为std::remove && std::remove_if只能堆由两个迭代器定义的一些列元素进行操作,而不知道下层集合,因此不能移除集合中的元素,算法只是吧符合删除条件的元素移动到集合的开头部分。其他条件元素处于不确定状态,算法返回一个指向第一个这样元素的迭代器,如果没有元素被删除,则指向集合的末尾,需要把这个迭代器传递给集合的成员函数erase,由它来执行删除操作...原创 2020-11-03 12:29:34 · 412 阅读 · 0 评论 -
Linux多线程服务端编程:使用muduo C++网络库
第一部分:C++多线程系统编程 第一章:线程安全的对象生命期管理 第二章:线程同步精要 第三章:多线程服务器的适用场合与常用编程模型原创 2020-04-01 00:00:09 · 246 阅读 · 0 评论 -
C++11之=default
=default既可以在类内声明也可以在类外声明,类内声明则函数默认为内联函数,类外则不是 =default是因为需要声明同名的构造函数原创 2020-03-31 23:17:14 · 395 阅读 · 0 评论 -
当前设备线程数获取
#ifndef CURRENT_DEVICE_CPU_COUNT_HPP#define CURRENT_DEVICE_CPU_COUNT_HPP#include<iostream>#include<thread>#include<chrono>using namespace std;class CURRENT_COMPUTER_FEATURES...原创 2020-01-12 11:37:02 · 156 阅读 · 0 评论 -
万能的函数包装器
template<class Function,class ... Args>inline auto FuncWrapper(Function && f, Args && ... args) -> decltype(f(std::forward<Args>(args)...)){ return f(std::forward<...原创 2019-12-31 16:03:25 · 195 阅读 · 0 评论 -
std::function作为函数参数
#include<iostream>#include<functional>using namespace std;void call_when_even(int x,const std::function<void(int)>& f){ if(!(x&1)){ f(x) }}void output(int x...原创 2019-12-30 17:30:45 · 1189 阅读 · 0 评论 -
不同的函数关键字
函数类型? 函数类型不能直接引用对象函数引用?函数指针?原创 2019-12-30 17:05:55 · 168 阅读 · 0 评论 -
自定义类型的for循环迭代器
#ifndef CUSTOM_ITERATOR_H#define CUSTOM_ITERATOR_Hnamespace detail_range{template<typename T>class iterator{public: using value_type = T; using size_type = unsigned int;private: ...原创 2019-12-30 15:30:53 · 111 阅读 · 0 评论 -
C++11 Using 的适用范围远远大于typedef
如标题原创 2019-12-25 16:19:33 · 193 阅读 · 0 评论 -
模板重命名
C+=98/03template<typename Val>struct str_map{ typedef std::map<std::string,Val> type;};str_map<int>::type map1;C++11template<class Val>using str_map_t ...原创 2019-12-25 16:15:29 · 250 阅读 · 0 评论 -
C++11新特性
1.解决了连续两个右 > 被解释为右移操作符2.98/03 争议 11 Foo<100 >> 3 > xx;即为 Foo< (100 >> 3) > xx;原创 2019-12-25 16:09:47 · 161 阅读 · 0 评论 -
C++ 消息总线的特点
好处1.对象只通过消息联系,不直接依赖或者关联2.降低复杂度,简化对象关系3.提高程序可维护性要解决的问题1.消息的定义:通用的消息格式使得所有对象能够接受2.消息的注册:所有对象都可以注册消息3.消息的分发:使得所有对象都可以收到消息并处理...原创 2019-12-23 11:35:31 · 574 阅读 · 0 评论 -
控制反转
概念 控制反转就是应用本身不负责依赖对象的创建,而是交给一个外部容器负责.通过将控制权由应用转移到外部IOC容器实现控制反转优势 1.降低对象之间直接依赖产生的耦合性劣势 1.耦合性仍然存在,未能彻底消除#代码样例void IocSample(){ //通过Ioc容器来配置A和Base对象的关系 IocContainer ioc; ioc.Registe...原创 2019-12-20 11:54:53 · 173 阅读 · 0 评论 -
访问者模式
template<typename ... Types>struct Visitor;template<typename T,typename... Types>struct Visitor<T,Types...>:Visitor<Types...>{ using Visitor<Types...>::Visit; ...原创 2019-12-19 12:36:53 · 125 阅读 · 0 评论 -
一.C++11深入应用(新概念)
1.代码更简洁1.3.using 重命名机制覆盖typedef 1.4.解除了只允许类模板参数有默认值,函数模板没有默认值的限制 1.5.列表初始化,无论数组,还是对象1.6 聚合类型 1.6.1 普通数组/.类(class,struct,union)/无用户自定义构造函数/无私有/保护非静态数据成员/无基类/无虚函数/不能有{}和=直接初始化1.7 任意...原创 2019-12-19 09:43:42 · 271 阅读 · 0 评论 -
二.C++11深入应用(工程级应用)
1.改进设计模式 修改单例模式template<typename T>class Singleton{public: template<typename ... Args> static T* Instance(Args&& ... args){ if(m_pInstance ==nullptr){ ...原创 2019-12-19 09:40:45 · 503 阅读 · 1 评论