C++
BlueBirdssh
这个作者很懒,什么都没留下…
展开
-
CentOS 安装 Samba服务器(多用户组、多用户有不同的访问权限)
增加smb用户[root@localhost sir01]#smbpasswd -a linuxsir查看 smb 现有用户pdbedit -L验证用户登录文件夹smbclient //192.168.101.93/forlder -U usernameWindows 映射网络文件夹目前是以其他用户名和密码进行映射的——映射盘更换登录用...原创 2019-05-11 15:31:40 · 3005 阅读 · 0 评论 -
封装了一整套c++11的轮子,代码比较简洁
https://github.com/qicosmos/cosmos原创 2019-12-12 09:43:16 · 233 阅读 · 0 评论 -
WebRTC与CMAF:哪一个最适合您?
https://cloud.tencent.com/developer/article/1453530延迟流媒体的新兴技术低延迟CMAF是流媒体行业的后起之秀。与WebRTC非常相似,低延迟CMAF的目标是克服业界的一项关键障碍:减少视频捕获和回放之间的延迟。那么究竟哪种更符合您对实时流媒体技术的需求?随着CMAF与WebRTC的竞争日趋激烈,我们将通过这篇文章向您阐述二者之前的差异...转载 2019-12-09 19:25:32 · 270 阅读 · 0 评论 -
Boost.Asio,libevent和ACE之间关于Socket编程的比较(★firecat推荐★)
文章来源:http://blog.163.com/miky_sun/blog/static/3369405201041753652505/ACE官网http://download.dre.vanderbilt.edu/boost官网http://www.boost.org/boostsourceforgehttp://sourceforge.net/projects/bo...转载 2019-11-14 15:27:58 · 701 阅读 · 1 评论 -
C++ 设计模式 软件架构
现在做C++JAVA面向对象设计,你们用UML工具或软件设计软件进行架构设计。面向对象的23种设计模式,现在设计模式,进行架构,然后再代码实现.软件开发6大法则2.1开闭原则2.2里氏代换原则2.3依赖倒转原则2.4接口隔离原则2.5迪米特法则2.6合成复用原则还有一类人以为会一些设计模式就是架构设计,会用各种组件拼接就是架构。可是当你提起系统性能、业务...原创 2019-11-14 10:26:05 · 5223 阅读 · 0 评论 -
C++ Java 23种设计模式的uml图表示及通俗介绍
创建型模式1、FACTORY 2、BUILDER 3、FACTORY METHOD 4、PROTOTYPE 5、SINGLETON结构型模式6、ADAPTER 7、BRIDGE8、COMPOSITE 9、DECORATOR10、FACADE 11、FLYWEIGHT 12、PROXY行为模式13、CHAIN OF RESPONSIBLEITY 14、...转载 2019-11-12 09:16:06 · 346 阅读 · 0 评论 -
linux编程头文件所在路径的问题
一、问题引入1、头文件与库 当我们在PC主机linux环境下(如ubuntu),编写linux应用程序,然后利用gcc来编译。在源代码的开始位置会写入头文件,那是因为我们使用了系统提供的库函数,例如printf、open、read、write等等。我们会写入类似的内容:#include <stdio.h>#include <stdlib.h>#i...转载 2019-11-08 14:08:34 · 589 阅读 · 0 评论 -
简述C++中map和unordered_map的用法
1. 简介map和unordered_map都是c++中可以充当字典(key-value)来用的数据类型,但是其基本实现是不一样的。2. map对于map的底层原理,是通过红黑树(一种非严格意义上的平衡二叉树)来实现的,因此map内部所有的数据都是有序的,map的查询、插入、删除操作的时间复杂度都是O(logn)。此外,map的key需要定义operator <,对于一般的数据类型已...转载 2019-10-23 12:49:44 · 171 阅读 · 0 评论 -
sizeof(char),sizeof(char*),sizeof(char[4]),
原文链接:https://my.oschina.net/liuchuanfeng/blog/66363932位系统,地址长度是32位(bit),也就是4Byte;64位系统,地址长度是64位(bit),也就是8Byte运用1:chara[]="helloworld";//自动为末尾加上'/0'charb[14]="helloworld";char*p=a...转载 2019-10-23 11:56:04 · 3003 阅读 · 0 评论 -
【常见面试题总结之C++中sizeof问题】
归纳一些常见面试题,C++中sizeof是经常被问到的一个概念,比如,下面的几个关于sizeof的面试题反复出现在各大IT公司的技术面试当中,我们有必要完全理解并掌握。【HR】:定义一个空的类型,里面没有任何成员变量和成员函数,对该类型求sizeof得到结果是多少?【acmer】:答案是1。【HR】:为什么不是0?【acmer】:空类型的实例中不包括任何信息,本来求sizeof得到...转载 2019-10-23 11:29:30 · 350 阅读 · 0 评论 -
C++笔试面试中的sizeof常见题目
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/z914022466/article/details/73770311以下所有问题均为32位操作系统#include <iostream>#include <string>using std::co...转载 2019-10-23 11:16:52 · 385 阅读 · 0 评论 -
C/C++大文件/数据网络传输方法总结
在C/C++网络编程中不免会遇到需要传输大数据、大文件的情况,而由于socket本身缓冲区的限制,大概一次只能发送4K左右的数据,所以在传输大数据时客户端就需要进行分包,在目的地重新组包。而实际上已有一些消息/通讯中间件对此进行了封装,提供了直接发送大数据/文件的接口;除此之外,利用共享目录,ftp,ssh等系统命令来实现大文件/数据也不失为一种好的方法。1.基础的基于socket进行传输...转载 2019-06-28 17:54:35 · 1365 阅读 · 2 评论 -
C++ 11 std::move c++右值引用以及使用
c++ 之 std::move 原理实现与用法总结https://blog.csdn.net/p942005405/article/details/84644069https://zh.cppreference.com/w/cpp/utility/movehttps://www.cnblogs.com/SZxiaochun/p/8017349.html返回值和右值引用的...转载 2019-08-06 10:51:10 · 262 阅读 · 0 评论 -
thread 线程安全 unordered_map
C++11:基于std::unordered_map和共享锁构建线程安全的maphttps://blog.csdn.net/10km/article/details/52072061https://blog.csdn.net/10km/article/details/52067929程序中经常需要缓存一些数据, 但是std::map 不是线程安全的https://blog.c...原创 2019-07-25 17:29:13 · 3747 阅读 · 0 评论 -
Linux查看上可执行程序或运行进程的依赖 ldd
通过ldd 不断推导程序依赖的库, 依赖库的次依赖库,问题:我想知道当我调用一个特定的可执行文件在运行时载入了哪些共享库。是否有方法可以明确Linux上可执行程序或运行进程的共享库依赖关系?查看可执行程序的共享库依赖关系要找出某个特定可执行依赖的库,可以使用ldd命令。这个命令调用动态链接器去找到程序的库文件依赖关系。$ ldd/path/to/program...转载 2019-07-29 11:46:52 · 1578 阅读 · 0 评论 -
Linux SKB基本结构剖析
基于内核版本2.6.37本文主要剖析:sk_buff结构体、sk_buff操作函数、各协议层对其处理主要源文件:linux-2.6.37/ include/ linux/ skbuff.h linux-2.6.37/ include/ linux/ skbuff.c一些相关数据结构在include/linux/ktime...转载 2019-07-16 20:08:10 · 1370 阅读 · 0 评论 -
一个C++ Makefile 的例子
Makefile不再编译已经编译过的未更新文件https://blog.csdn.net/Rong_Toa/article/details/88257998# g++ -std=c++17 -I /home/software/opencv/include/ cvimage.h cvtest.cpp -o cvddd -lopencv_core -lopencv_...原创 2019-07-09 17:27:28 · 251 阅读 · 0 评论 -
模糊图像识别(OpenCV学习笔记之四)
闲话这里的学习笔记和其他人学习OpenCV的流程可能不一样,我是根据我的一个项目来学习的。项目已经做出来了但个人觉得还有不够完善的地方,我先将项目中遇到的问题或学到的知识写出来。后期会把整个项目用一篇博客写出来,并把代码放到我的github上。如果有对图像处理感兴趣的同学可以关注我,你们的支持是我分享的动力。我是从零开始学习OpenCV的,我会把我认为有必要写出来的知识点写成博客记下来。闲话就...转载 2019-07-10 11:41:03 · 3159 阅读 · 1 评论 -
千万级规模高性能、高并发的网络架构经验分享
架构以及我理解中架构的本质在开始谈我对架构本质的理解之前,先谈谈对今天技术沙龙主题的个人见解,千万级规模的网站感觉数量级是非常大的,对这个数量级我们战略上 要重 视 它 , 战术上又 要 藐 视 它。先举个例子感受一下千万级到底是什么数量级?现在很流行的优步(Uber),从媒体公布的信息看,它每天接单量平均在百万左右, 假如每天有10个小时的服务时间,平均QPS只有30左右。对于一个后台服务器...转载 2019-06-28 18:02:31 · 218 阅读 · 0 评论 -
C++大数据处理
转:http://blog.csdn.net/v_july_v/article/details/7382693作者:July出处:结构之法算法之道blog前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量...转载 2019-06-28 17:59:47 · 5784 阅读 · 0 评论 -
c++的大数据生态链在哪里?
C/C++ 是否存在大数据生态圈,为什么?现在一提起大数据,基本就等同于 Hadoop / Spark / Storm 等一系列 JVM 体系下的开源架构;而如果说要用 C/C++ 的话,基本就是还在造轮子的阶段,差距十分悬殊。是不是有一天也会像 Nginx 的诞生一样,在 Apache 如日中天的时候,有一个神秘的 C 高手团队造就了 Nginx 现在的地位。个人的臆想是,在 Linux...原创 2019-06-28 17:58:21 · 587 阅读 · 0 评论 -
c++程序大数据量处理性能优化
1. 现在处理的程序为每秒钟处理20w条数据,甚至更多,加快处理速度,总结了一些经验,记录下来程序的数据结构里面尽量避免string,map这样的数据结构,因为string虽然不用自己管理指针,但是在构造和析构的时候很费资源,还有在执行c_str()的时候要new出一块内存来,这样的频繁执行的程序块中,会非常费时间。map在插入的时候,因为要保持rbtree的平衡结构,要进行self_bala...转载 2019-06-28 17:56:04 · 637 阅读 · 0 评论 -
linux c/c++ 删除文件
inux c/c++ 删除文件#include <stdio.h>int FileRemove(const char* fname){ return remove(fname);}转载 2019-07-25 17:46:25 · 1849 阅读 · 0 评论 -
rapidjson图文讲解
https://blog.csdn.net/kds0714/article/details/90376552C++项目RapidJson的详细用法总结https://blog.csdn.net/u014449046/article/details/79070301RapidJSON 代码剖析(三):Unicode 的编码与解码https://www.cnblogs.co...转载 2019-07-25 17:51:56 · 721 阅读 · 0 评论 -
C++ 11中几个我比较喜欢的语法(二)
之前在文章C++ 11中几个我比较喜欢的语法中介绍了几个我比较喜欢的C++语法,其中有些语法由于VC 11还不支持,无法跨平台,所以没有介绍。前几天VS 2013 Preview发布后,对C++ 11又有了一些支持,因此这里继续完成一下C++ 11语法系列:原生字符串(raw string literals)很多时候,当我们只需要一行字符串的时候,字符串转义往往成了一个负担,和写和读都带了...转载 2019-07-25 18:00:36 · 136 阅读 · 0 评论 -
C++重写(覆盖)、重载、重定义、多态
1 重写(覆盖)override override是重写(覆盖)了一个方法,以实现不同的功能。一般用于子类在继承父类时,重写(覆盖)父类中的方法。函数特征相同,但是具体实现不同。重写需要注意:被重写的函数不能是static的,必须是virtual的 重写函数必须有相同的类型,名称和参数列表 重写函数的访问修饰符可以不同。尽管virtual是private的,派生类中重写改写为pu...转载 2018-11-14 09:35:10 · 1033 阅读 · 0 评论 -
c/c++ 结构体赋初值的小技巧
1.CC++结构体的初始化今天看到项目中对自定义结构体初始化方式有点陌生,特在此罗列一下可用的结构体初始化的方式。对结构体 struct A { int b; int c; } 有几种初始化方式:第一种: struct A a = { .b = 1, .c = 2 }; 第二种:...转载 2019-08-07 10:41:09 · 6169 阅读 · 0 评论 -
DPI(Deep packet inspection,深度报文解析)
DPI(Deep packet inspection,深度报文解析)正好,有这么一个基于opendpi框架的深度报文分析的工具——ndpindpi是在opendpi的基础上编写而来的协议分析工具。源代码编译后生成两个部分,一个是内核层的xt_ndpi.ko模块,用来实时分析流量,另一个是应用层的lib库,给ndpiReader这个工具提供库,用来分析抓包工具提供的文件或者底层网...原创 2019-08-02 10:53:12 · 7864 阅读 · 0 评论 -
从HTTP四种POST 提交数据方式,引申JSON与JSONP区别
HTTP协议是以ASCII码传输,建立在TCP/IP协议之上的应用层规范。规范把HTTP请求分为三个部分:状态行、请求头和请求主体。-状态行GET 请求报文示例:Host User-Agent Connection:keep-AlivePOST 请求报文示例HOST User-Agent Content-Type: application/x-www-form-urlen...原创 2019-08-02 10:30:37 · 459 阅读 · 0 评论 -
C++ C 关键字 及说明
以下是C++ C 关键字 及说明 。explicit:C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。mutable:在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。volatile 关键...转载 2019-08-06 10:36:17 · 224 阅读 · 0 评论 -
shared_ptr 线性安全
正如boost文档所宣称的,boost为shared_ptr提供了与内置类型同级别的线程安全性。这包括:1. 同一个shared_ptr对象可以被多线程同时读取。2. 不同的shared_ptr对象可以被多线程同时修改。3. 同一个shared_ptr对象不能被多线程直接修改,但可以通过原子函数完成。...原创 2019-08-01 14:20:35 · 208 阅读 · 0 评论 -
《影响力》读书笔记
前言作者:(美)罗伯特·B.西奥迪尼 (Robert B.Cialdini)毕业之后很少看书,每年能看3本已经很不错了。偶然的机会,我在我们公司图书借阅系统看到了这本书,就借来看了。看这本书之前,我以为这是一本想要成为一个优秀的人要具有哪些品格的书籍。但是后来看的时候却发现了这本书里的很多奥秘,是一本社会心理学,一些理论让人感到高深莫测,但是当看到小案例之后又让人觉得通俗易懂,让我受益匪浅!...转载 2019-08-01 11:10:23 · 299 阅读 · 0 评论 -
C++ 学习
https://www.cnblogs.com/skyus/articles/8524408.htmlhttps://blog.csdn.net/A_L_A_N/article/details/82756143https://www.cnblogs.com/CreeperLKF/p/9314916.html线程安全https://blog.csdn.net/weixin_41...原创 2019-07-22 23:46:22 · 147 阅读 · 0 评论 -
C++ 使用 curl 进行 http 请求(GET、POST、Download)的封装
CommonTools.h/* * CommonTools.h * * * */#include <iostream>#include <curl/curl.h>#include "zlib.h"#include <vector>#include <string>#include <unistd.h>...原创 2019-07-31 18:10:16 · 2497 阅读 · 1 评论 -
c++字符串的编码?
c++ 字符串加载到内存里面是什么编码格式的?win7中文系统下,控制台默认是GBK编码的,用GBK格式保存的源文件,中文字符串在vs2010下编译输出到控制台会正常输出但是vs2010里面采用utf-8无BOM的源文件 输出中文字符串到终端就出现乱码了所以 是不是c++把字符串的值加载到内存中时 是按照cpp文件的编码保存的? 也就是说utf-8编码的cpp文件,编译后字符串加载到内...转载 2019-07-25 18:02:03 · 2039 阅读 · 0 评论 -
C++日志系统log4cxx使用总结
https://www.cnblogs.com/swarmbees/p/5621401.html原创 2019-08-01 11:13:49 · 240 阅读 · 0 评论 -
STL map常用操作简介
1。目录 map简介 map的功能 使用map 在map中插入元素 查找并获取map中的元素 从map中删除元素 2。map简介 map中的元素其实就是一个pair.map的键一般不能是指针, 比如int*, char*之类的, 会出错. 常用的就用string了,int也行.map是个无序的容器, 而vector之类是有序的. 所谓有序无序是指放入的元素并不是按一定顺序放转载 2012-09-12 09:27:29 · 620 阅读 · 0 评论 -
C++ 多态的实现及原理
C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数1:用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。2:存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,...转载 2018-11-14 09:45:52 · 256 阅读 · 0 评论 -
堆和栈的区别
一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,...转载 2018-11-14 09:55:56 · 178 阅读 · 0 评论 -
C++ 三大特性之封装
本篇博客主要介绍C++ 的封装机制。在本篇博客中,简单介绍了封装的相关概念以及在C++ 中实现封装的基本手段。什么是封装?封装: 封装可以隐藏实现细节,使得代码模块化封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。在面向对象编程上可理解为:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。数据抽象数据抽象是指...转载 2018-11-14 10:42:38 · 260 阅读 · 0 评论