C++
剑客无名
这个作者很懒,什么都没留下…
展开
-
【C++】packaged_task的用法实例
1. 前言packaged_task是C++用来实现异步调用的特性之一,其用来包装函数使其作为异步任务进行。最后函数的返回值可以通过该packaged_task的future对象来获得。2.1代码实例如下// Copyright [2021], [Ziliu]#include <functional> // std::ref#include <future> // std::promise std::future#include <iostream>原创 2021-01-27 18:41:09 · 567 阅读 · 0 评论 -
【C++】模板类的使用以及实例
1. 前言模板类是用来生成类的蓝图的。通过一个模板,可以节省大量的代码空间和提高开发的效率,本文章将会就模板类举例进行一个简单的实例。2. 用模板类实现一个简单的vector代码目录结构如下:├── main│ ├── BUILD│ ├── main.cc│ └── myvector.h└── WORKSPACE2.1 模板类myvector.h的代码如下注意: 模板类的定义和声明不建议分离编译,否则可能在编译时会导致链接错误,故myvector的声明和实现都定义在同一个文原创 2021-01-20 14:26:01 · 810 阅读 · 0 评论 -
【UBUNTU】bazel编译C++文件,bazel的写法
1. 序言bazel是谷歌提出的新编译工具,目的在于取代现存的make和cmake等老旧的编译工具。其具有相当优秀的编译速度,且使用方法易于上手,下面就来说说怎么使用bazel来编译C++代码。2. bazel的工作目录项目├── main(源代码所在文件夹)│ ├── BUILD│ └── print.cpp└── WORKSPACE==============================WORKSPACE用不上的话,内容可以为空,只象征着工作空间的主目录所在3. baz原创 2021-01-20 14:05:33 · 2761 阅读 · 1 评论 -
【TARS】UBUNTU下关于TAF框架的安装和C++环境的配置,以及demo实例
前言本文中安装TARS框架的方法大部分都是来自于官方的GUIDE,官方GUIDE中配置TARS的方法很多,本文中只选择了适合本机的方法。本人系统是UBUNTU16,如果你也是ubuntu系统,有点长,希望能帮到你。一. 安装依赖库sudo apt-get install build-essential bison flex cmake psmisc libncurses5-dev zlib1...原创 2020-04-30 19:36:28 · 766 阅读 · 0 评论 -
【技术问题】C++多线程pthread_create error: invalid use of non-static member function
问题如下pthread_create error: invalid use of non-static member function先简要解释下pthread_create这个函数的各个参数:param1: 为指向线程标识符的指针。param2: 用来设置线程属性。param3: 线程运行函数的起始地址。param4: 运行函数的参数。出错往往是第三个参数,报错的原因要求我们要将...原创 2020-04-21 10:45:16 · 2521 阅读 · 4 评论 -
【网络编程/操作系统】线程池原理及其实现
前言线程池的构造是这样的,系统根据线程池初始化的线程数预先分配一块内存给线程池。当有任务进来的时候,直接将事先创建好的线程分配给任务。如果没有可用的空闲线程了,就令任务在任务队列中等待。 这样可以很好的避免了每个任务都分配一个线程,当任务请求过多时,导致资源消耗过多最终影响全体任务性能的情况。同时减少了线程的频繁创建和销毁,毕竟创建和销毁线程也需要cpu资源和消耗时间的。线程池的结构线程池的...原创 2020-04-19 12:50:55 · 241 阅读 · 0 评论 -
【网络编程】Linux自带socket库实现HTTP服务端代码
前言前些天用socket底层代码写了客户端发送数据到服务端的代码,C++构建HTTP客户端发送数据(POST方式),这些天写了个比较简单的服务端作为上一篇的姊妹篇,算是对上一篇中偷懒使用FLASK框架的小补充。HTTP服务端构建思路1. 初始化socket对象(1 )网络编程中的重要一步,必不可少的一步,创建Socket对象//Create Socketthis->socket_...原创 2020-04-10 12:40:41 · 956 阅读 · 0 评论 -
【网络编程】Linux自带socket库构建HTTP客户端发送数据(POST方式)
以上传图片到服务器为例子1. 初始化HTTP(1) 创建socket对象(AF_INET, SOCK_STREAM, 0)int socket_fd = socket(AF_INET, SOCK_STREAM, 0);(2) 与服务器进行连接connect,需要知道服务器的IP和PORT,IP地址的格式(AF_INET),同时要把IP地址和PORT从主机字节序转换为网络字节序。sock...原创 2020-04-08 12:34:20 · 601 阅读 · 0 评论 -
【UBUNTU】makefile文件的写法
序言linux中编译代码往往没有windows下直接使用IDE来得方便,但是既然从事了C/C++的开发就必然会涉及到linux下的C/C++编程。既然是编译C/C++代码,那就要学会怎么写makefile文件了,下面来说说怎么使用makefile文件来编译代码。第一种情况只有一个main.cpp文件,代码如下:#include <iostream>using namespac...原创 2020-04-03 16:46:47 · 1590 阅读 · 0 评论 -
【UBUNTU/技术问题】C/C++发生CoreDump(段错误,核心转储)后,如何快速定位到错误之处。
前言相信很多小伙伴在Linux环境下运行C++代码时都遇到过“段错误”,“核心转储”这种让人摸不着头脑的错误,但是又不知道如何定位到错误的位置。往往就放弃解决了,但是在实际工程中,出现这种错误是一定要解决的,不然项目拉跨了只能卷铺盖走人了。那么当项目工程量大的时候,我们来说说怎么快速定位到代码报错的位置。Core dump的类型1. 内存访问越界的问题(最典型的比如数组下标越界)2. 堆栈...原创 2020-03-06 18:53:53 · 979 阅读 · 0 评论 -
【UBUNTU】如何使用CMake编译同个项目中的多个CPP文件,编译链接动态库。
前言不得不承认在ubuntu对编译C/C++程序非常不友好,经常得自己写CMakeLists.txt.有时候在同一个项目中,还需要把自己写的类编译成动态库,下面记录下自己在ubuntu开发中遇到的坑。假设我们这里定义了一个类(1)这是类的头文件 mylib.hpp#ifndef MYLIB_H#define MYLIB_H#include <iostream>class ...原创 2020-01-08 11:37:16 · 2419 阅读 · 0 评论