C++11
文章平均质量分 96
C++ 补充 & C++11
weifc-wei
遇到问题,解决问题。咯卡咯伽!!!
展开
-
Protobuf 的简单使用例子
文章目录应用层协议设计protobuf 序列化protobuf的原理定义message编译message文件应用protobufMessage 基本用法Message 嵌套使用具体操作点击我, 到底部应用层协议设计通信双方交换数据的格式与顺序通信双方应该采取的动作用户登陆模块 短信获取获取短信请求 mobile_request字段名类型属性字段描述mobilestringrequired手机号码, 必须为大陆手机取 11 位数字获取短信响应 m翻译 2021-03-09 22:12:43 · 2174 阅读 · 1 评论 -
C++ vector<std::tuple<XXX, XXX, XXX>>
c++ vector套tuple 遍历C++ vector<std::tuple<XXX, XXX, XXX>std::vector<std::tuple<std::string, std::string, int> > vec; 1 #include <functional> 2 #include <iostream> 4 #include <tuple> 5 #include <vector>原创 2020-11-06 23:11:37 · 1101 阅读 · 0 评论 -
Linux安装boost、libevent、zlib、OpenSSL库
起语版权声明视频连接:https://www.bilibili.com/video/BV1mz411i7JW?from=search&seid=17690014621062817415百度云盘快捷链接链接:https://pan.baidu.com/s/16laNxx-xFAjczEmqoKSGyQ提取码:g4wb具体内容:= = = = = = = = > Linux安装第三方库 < = = = = = = = =百度云盘快捷链接链接:https://pan.b翻译 2020-09-23 23:59:29 · 1246 阅读 · 0 评论 -
C++ 补充 & C++ 11 - C++智能指针weak_ptr 使用 (自从C++11)
weak_ptr 使用 (自从C++11)weak_ptr 设计的目的是为配合 shared_ptr 而引入的一种智能指针来协助 shared_ptr 工作, 它只可以从一个 shared_ptr 或另一个 weak_ptr 对象构造, 它的构造和析构不会引起引用记数的增加或减少. 同时weak_ptr 没有重载*和->但可以使用 lock 获得一个可用的 shared_ptr 对象。测试代码:#include <stdio.h>#include <iostream>翻译 2020-07-04 14:18:57 · 138 阅读 · 0 评论 -
C++ 补充 & C++ 11 - C++智能指针shared_ptr 使用详解 (C++11)
shared_ptr 使用详解 (C++11)熟悉了unique_ptr 后,其实我们发现unique_ptr 这种排他型的内存管理并不能适应所有情况,有很大的局限!如果需要多个指针变量共享怎么办?如果有一种方式,可以记录引用特定内存对象的智能指针数量,当复制或拷贝时,引用计数加1,当智能指针析构时,引用计数减1,如果计数为零,代表已经没有指针指向这块内存,那么我们就释放它!这就是 shared_ptr 采用的策略!构造函数shared_ptr sp ; //空的shared_ptr,可以指向类型翻译 2020-07-03 23:28:52 · 596 阅读 · 0 评论 -
C++ 补充 & C++ 11 - C++智能指针unique_ptr 使用详解 (C++11)
unique_ptr 使用详解 (C++11)auto_ptr是用于C++11之前的智能指针。由于 auto_ptr 基于排他所有权模式:两个指针不能指向同一个资源,复制或赋值都会改变资源的所有权。auto_ptr 主要有两大问题:复制和赋值会改变资源的所有权,不符合人的直觉。在 STL 容器中使用auto_ptr存在重大风险,因为容器内的元素必需支持可复制(copy constructable)和可赋值(assignable)。不支持对象数组的操作demo 代码(一)例子:#include翻译 2020-07-03 20:49:09 · 513 阅读 · 0 评论 -
C++ 补充 & C++ 11 - C++智能指针auto_ptr 使用详解 (C++98)
auto_ptr 使用详解 (C++98)auto_ptr 是c++ 98定义的智能指针模板,其定义了管理指针的对象,可以将new 获得(直接或间接)的地址赋给这种对象。当对象过期时,其析构函数将使用delete 来释放内存!用法:头文件: #include <memory>用 法: auto_ptr<类型> 变量名(new 类型)例 如:auto_ptr str(new string(“我要成为大牛~ 变得很牛逼!”));auto_ptr<ve翻译 2020-07-03 10:06:50 · 359 阅读 · 0 评论 -
C++ 补充 & C++ 11 - C++智能指针
C++智能指针为什么要使用智能指针举个例子 demo 代码(一)#include <iostream>#include <string>#include <exception>using namespace std;void memory_leak_demo1(){ string* str = new string("今天写了一天代码, 太累了, 回家睡觉!!!"); cout << *str << endl; retu翻译 2020-07-02 22:31:10 · 92 阅读 · 0 评论 -
C++ 补充 & C++ 11 - C++ 类型转换使用建议
类型转换使用建议1)static_cast静态类型转换,编译的时c++编译器会做编译时的类型检查;隐式转换;基本类型转换,父子类之间合理转换2)若不同类型之间,进行强制类型转换,用reinterpret_cast<>() 进行重新解释建 议:C语言中 能隐式类型转换的,在c++中可用 static_cast<>()进行类型转换。因C++编译器在编译检查一般都能通过;C语言中不能隐式类型转换的,在c++中可以用 reinterpret_cast<>() 进行强翻译 2020-07-02 21:44:23 · 147 阅读 · 0 评论 -
C++ 补充 & C++ 11 - C++ const_cast用法详解
const_cast用法详解去const属性。(仅针对于指针和引用)demo 代码(一)#include <iostream>using namespace std;void demo(const char* p){ /* 对指针去掉 const char *p */ char* p1 = const_cast<char*>(p); p1[0] = 'A'; /* 直接去掉 const 修改 */ const_cast<char*>(p)[0]翻译 2020-07-02 17:28:29 · 413 阅读 · 0 评论 -
C++ 补充 & C++ 11 - C++ dynamic_cast用法详解
dynamic_cast动态类型转换将一个基类对象指针cast到继承类指针,dynamic_cast 会根据基类指针是否真正指向继承类指针来做相应处理。失败返回null,成功返回正常cast后的对象指针;将一个基类对象引用cast 继承类对象,dynamic_cast 会根据基类对象是否真正属于继承类来做相应处理。失败抛出异常bad_cast注意:dynamic_cast在将父类cast到子类时,父类必须要有虚函数一起玩。...翻译 2020-07-02 16:44:45 · 313 阅读 · 0 评论 -
C++ 补充 & C++ 11 - C++ reinterpret_cast用法详解
reinterpret_cast用法详解重新解释类型(挂羊头,卖狗肉) 不同类型间的互转,数值与指针间的互转用法: TYPE b = reinterpret_cast ( a )TYPE必须是一个指针、引用、算术类型、函数指针.忠告:滥用 reinterpret_cast 运算符可能很容易带来风险。 除非所需转换本身是低级别的,否则应使用其他强制转换运算符之一。demo 代码(一)#include <iostream>using namespace std;class A翻译 2020-07-02 14:39:16 · 2260 阅读 · 0 评论 -
C++ 补充 & C++ 11 - C++ static_cast用法详解
static_cast用法详解静态类型转换(斯文的劝导,温柔的转换)。如int转换成char主要用法:1、用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。上行指针或引用(派生类到基类)转换安全,下行不安全2、用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。3、把空指针转换成目标类型的空指针。4、把任何类型的表达式转换成void类型。...翻译 2020-07-02 12:48:50 · 1339 阅读 · 0 评论 -
C++ 补充 & C++ 11 - C++ 类型转换简介
C++ 类型转换简介翻译 2020-07-01 23:58:21 · 71 阅读 · 0 评论 -
C++ 补充 & C++ 11 - array容器用法
C++11 新增容器 - arrayarray容器概念array 容器是 C++ 11 标准中新增的序列容器,简单地理解,它就是在 C++ 普通数组的基础上,添加了一些成员函数和全局函数。array是将元素置于一个固定数组中加以管理的容器。array可以随机存取元素,支持索引值直接存取, 用[]操作符或at()方法对元素进行操作,也可以使用迭代器访问不支持动态的新增删除操作array可以完全替代C语言中的数组,使操作数组元素更加安全!#include arrayarray特点array 容翻译 2020-07-01 17:12:57 · 525 阅读 · 0 评论 -
C++ 补充 & C++ 11 - 函数返回引用深入解析
函数返回引用深入解析C++引用使用时的难点1.当函数返回值为引用时若返回栈变量,不能成为其它引用的初始值,不能作为左值使用2. 若返回静态变量或全局变量可以成为其他引用的初始值即可作为右值使用,也可作为左值使用3. 返回形参当引用(注:C++链式编程中,经常用到引用,运算符重载专题)demo 代码(一)#include <iostream>#include <stdlib.h>#include <stdio.h>using namespac翻译 2020-07-01 14:08:33 · 750 阅读 · 0 评论 -
C++ 补充 & C++ 11 - 左值和右值的概念
直接上代码demo 代码(一)#include <iostream>using namespace std;int demo(){ int i = 0; return i;}int main(){ demo() = 888; return 0;}编译:demo 代码(二)#include <iostream>using namespace std;int demo(){ int i = 0; return i;}int翻译 2020-07-01 00:28:19 · 205 阅读 · 0 评论 -
C++ 补充 & C++ 11 - explicit 关键字
explicit 关键字explicit /ɪkˈsplɪsɪt/ 明确的;清楚的;直率的;详述的作用是表明该构造函数是显示的, 而非隐式的.不能进行隐式转换! 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).demo1 代码:#include <iostream>#include <string>using namespace std;class student{public: stu翻译 2020-06-30 21:57:27 · 233 阅读 · 0 评论