
C++语法
5guo
会得不多
展开
-
map/unordermap的使用
1. 当用enum做keyenum可能会出现无法hash的问题,用下面办法解决struct EnumClassHash{ template <typename T> std::size_t operator()(T t) const { return static_cast<std::size_t>(t); }...原创 2019-10-14 17:32:00 · 793 阅读 · 0 评论 -
protobuf反射详解
本文主要介绍protobuf里的反射功能,使用的pb版本为2.6.1,同时为了简洁,对repeated/extension字段的处理方法没有说明。最初是起源于这样一个问题:给定一个pb对象,如何自动遍历该对象的所有字段?即是否有一个通用的方法可以遍历任意pb对象的所有字段,而不用关心具体对象类型。 使用场景上有很多:比如json格式字符串的相互转换,或者bigtable里根据pb对象...转载 2018-12-12 20:22:44 · 2150 阅读 · 0 评论 -
C++11 并发指南一(C++11 多线程初探)
引言C++11 自2011年发布以来已经快两年了,之前一直没怎么关注,直到最近几个月才看了一些 C++11 的新特性,今后几篇博客我都会写一些关于 C++11 的特性,算是记录一下自己学到的东西吧,和大家共勉。相信 Linux 程序员都用过 Pthread, 但有了 C++11 的 std::thread 以后,你可以在语言层面编写多线程程序了,直接的好处就是多线程程序的可移植性得到了很大...转载 2018-10-15 14:45:07 · 174 阅读 · 0 评论 -
C++11 多线程同步 互斥锁 条件变量
这个是很实用的一部分转自:https://blog.youkuaiyun.com/yangbodong22011/article/details/60348742在多线程程序中,线程同步(多个线程访问一个资源保证顺序)是一个非常重要的问题,Linux下常见的线程同步的方法有下面几种:互斥锁条件变量信号量这篇博客只介绍互斥量和条件变量的使用。互斥锁和条件变量通常情况下,互斥锁和条件变量是配合使用的,互斥锁用于短...转载 2018-06-25 17:45:17 · 713 阅读 · 0 评论 -
C++11学习(1)——对齐方式
c++是能够面向内存编程的,这个与继承自c。有原创 2014-11-24 16:02:56 · 1382 阅读 · 0 评论 -
C++11学习(2)——属性
attributesC++11提供了4个guanjia原创 2014-11-24 16:28:54 · 690 阅读 · 0 评论 -
C++11学习(4)——枚举类
在现有的C++中有枚举类型,关键字为enum,然则它会存在三个问题:1. 在那些不需要枚举类型表现为int类型时,它却默认表现为int类型,这会导致错误发生。2. 可转换的枚举会使得他的枚举值在其周围的代码范围内都是可见的,这可能会导致名字冲突。3. 不可以指定枚举底层数据类型(只能是int型),这可能导致代码代码不容易被理解和兼容性问题,而且不可以进行前向声明。针对这些隐原创 2014-11-26 16:21:16 · 625 阅读 · 0 评论 -
C++11学习(3)——auto
autoauto是一个设计者十分用心良苦的关键字,它的功能非常强大也非常友好,我估计我之后会多次修改本文,不费话了。1.从初始化中推断数据类型,当我们懒得写名字(特别是那种很长的带泛型的带STL的名字),而且能确定其类型无二义编译器推得出来,就可以用auto代替了,比如初始化数据就是。格式: auto x = expression;例如: auto x = 7;或:原创 2014-11-25 16:46:15 · 600 阅读 · 0 评论 -
关于析构函数和纯虚函数
之前一直不知道,虚析构函数yo原创 2014-09-29 22:18:33 · 2341 阅读 · 2 评论 -
C++ Primer(4th)文本查询自编代码
C++primer第四版的十五章,文本查询,这块儿代码原创 2014-10-07 19:45:44 · 684 阅读 · 0 评论 -
C++ 的一个问题的理解(私有变量成员)
这个题目很奇怪啊,今天下午在看拷贝构造函数的时候,突然看到了很奇怪的一句话:[cpp] view plaincopyclass CExample { public: CExample(){pBuffer=NULL; nSize=0;} ~CExample(){delete pBuffer;}转载 2014-09-16 21:31:29 · 565 阅读 · 0 评论