C++学习笔记
文章平均质量分 87
dxmcu
QQ : 2795247843
展开
-
STL之二:vector容器用法详解
vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组。像数组一样,vector类也用从0开始的下标表示元素的位置;但和数组不同的是,当vector对象创建后,数组的元素个数会随着vector对象元素个数的增大和缩小而自动变化。 vector类常用的函数如下所示: 1.构造函数vector():创建一个空vectorvector(int nSize):创转载 2016-07-16 19:35:15 · 970 阅读 · 0 评论 -
C++ vector的初始化、添加、遍历、插入、删除、查找、排序、释放操作
C++的vector本质上是一个动态数组,数据量不大的情况下,非常方便存储和访问操作,当然,不好的情况是数据量大的情况下,查找效率低,删除操作还会导致大量的数组移动操作。虽然这样,vector还是一个很有用的东西,可以满足很多开发需求。 1. vector的初始化Vector是向量模板,C++ STL之一。前面说过vector是一个动态生长的数组,一开始vector为空时,会给一...转载 2019-02-23 14:15:54 · 1008 阅读 · 0 评论 -
Class template basic_ptree(模版类里再混有模版函数)
Class template basic_ptreeboost::property_tree::basic_ptree //模版类里再混有模版函数 Synopsis// In header: <boost/property_tree/ptree.hpp>template<typename Key, typename Data, typena...转载 2019-02-13 10:21:39 · 311 阅读 · 0 评论 -
C++ Map常见用法说明
一 声明 二 插入操作 1 使用 进行单个插入 1 使用insert进行单个和多个插入 三 取值 四 容量查询 五 迭代器 六 删除交换 1 删除 ...转载 2019-02-19 10:51:07 · 1801 阅读 · 0 评论 -
两款超轻量级web服务器了解一下! - Http-server && SimpleHTTPServer
Http-server 前置 安装 使用 SimpleHTTPServer 前置 使用前端学习中有时需要在服务器环境上进行测试。如果觉得启动tomcat或者nodejs服务器过于麻烦,不妨试试本文推荐的两款超轻量级的web服务器。 Http-serverHttp-server是基于no...转载 2019-02-19 14:17:38 · 470 阅读 · 0 评论 -
vector容器用法详解
vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组。像数组一样,vector类也用从0开始的下标表示元素的位置;但和数组不同的是,当vector对象创建后,数组的元素个数会随着vector对象元素个数的增大和缩小而自动变化。 vector类常用的函数如下所示: 1.构造函数vector():创建一个空vector vector(int nSize...转载 2019-03-02 09:47:34 · 267 阅读 · 0 评论 -
C++ vector容器的4种遍历方式
首先定义三个结构体,注意初始化:struct CVector2{struct CVector2(){x = 0.0;y = 0.0;};float x;float y;};struct CVector3{struct CVector3(){x = 0.0;y = 0.0;z = 0.0;};float x;float y;float z;};struc...转载 2019-02-27 11:30:30 · 22410 阅读 · 0 评论 -
C++ token JWT HS256 生成token和验证token
使用到的类库jsoncpp:用于json数据操作boost:智能指针和正则表达,如果是C++11以上版本可以替换成C++11的智能指针和正则表达式CryptoPP:大名鼎鼎的免费的C++加解密类库,Crypto++几乎涵盖了所有的加解密算法以上类库是可以跨平台使用代码宏定义请参看负载均衡权重系数算法 C++中的se_std.h头文件#include <string...转载 2019-03-21 09:59:11 · 1385 阅读 · 0 评论 -
CMake错误No CMAKE_CXX_COMPILER could be found.
No CMAKE_CXX_COMPILER could be found.Tell CMake where to find the compiler by setting either the environmentvariable “CXX” or the CMake cache entry CMAKE_CXX_COMPILER to the full pathto the compil...原创 2019-03-21 11:01:09 · 21111 阅读 · 4 评论 -
负载均衡权重系数算法 C++
为保证程序的稳定性和质量,内存要求使用智能指针(c++11),同时使用了boost(智能指针使用c++11)。1 自定义标准头文件se_std.h#ifndef H_CF4BC297_2737_4B2E_AB51_C0915F823960#define H_CF4BC297_2737_4B2E_AB51_C0915F823960#include <stdexcept>#i...转载 2019-03-21 12:06:59 · 899 阅读 · 0 评论 -
Ubuntu源码编译jsoncpp
jsoncpp 0.5.0编译sudo apt-get install sconstar -xf jsoncpp-src-0.5.0.tar.gzcd jsoncpp-src-0.5.0scons platform=linux-gccjsoncpp 1.8.4编译1 下载必须的软件注意在开始前请先安装Python3,版本大于等于3.4ninja通过git下载meson下载...转载 2019-03-21 12:16:35 · 682 阅读 · 0 评论 -
C++ 开发 Web 服务框架 - 基础知识:C++11 与 Boost Asio(一)
C++ 开发 Web 服务框架 - 基础知识:C++11 与 Boost Asio一、概述项目介绍服务器开发中 Web 服务是一个基本的代码单元,将服务端的请求和响应部分的逻辑抽象出来形成框架,能够做到最高级别的框架级代码复用。本次项目将综合使用 C++11 及 Boost 中的 Asio 实现 HTTP 和 HTTPS 的服务器框架。项目涉及的知识点 C++基本知识...转载 2019-04-01 16:03:31 · 1300 阅读 · 0 评论 -
C++ 开发 Web 服务框架 - HTTP Web 框架的设计与实现(二)
C++ 开发 Web 服务框架 - HTTP Web 框架的设计与实现 一、概述 项目介绍服务器开发中 Web 服务是一个基本的代码单元,将服务端的请求和响应部分的逻辑抽象出来形成框架,能够做到最高级别的框架级代码复用。本次项目将综合使用 C++11 及 Boost 中的 Asio 实现 HTTP 和 HTTPS 的服务器框架。 项目涉及的知识点C++基本知识 面向对象 ...转载 2019-04-01 17:57:49 · 1031 阅读 · 0 评论 -
C++ 开发 Web 服务框架 - HTTPS 的原理及其 Web 框架的设计与实(三)
C++ 开发 Web 服务框架 - HTTPS 的原理及其 Web 框架的设计与实现 一、概述 项目介绍服务器开发中 Web 服务是一个基本的代码单元,将服务端的请求和响应部分的逻辑抽象出来形成框架,能够做到最高级别的框架级代码复用。本次项目将综合使用 C++11 及 Boost 中的 Asio 实现 HTTP 和 HTTPS 的服务器框架。 项目涉及的知识点C++基本知识 ...转载 2019-04-01 17:58:56 · 695 阅读 · 0 评论 -
UTF8与std:string互转
Ajax请求发送的UTF8编码字符串传到后台使用std:string进一步处理,如果包含中文会出现中文乱码的问题: 特找了一下转码的解决方法,直接代码如下:C++ Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...转载 2019-05-07 10:31:49 · 1161 阅读 · 0 评论 -
PCL编程笔记——Assertion `px != 0' failed.
参考:http://blog.csdn.net/mnonm_mnonm_mnonm/article/details/8706659报错: boost::shared_ptr……Assertion `px != 0' failed.原因:智能指针未初始化。处理:初始化。如PointCloudT::Ptr cloud;编译可通过,但是程序运行时会报出上述错误,经过如下初始化后,报...转载 2019-06-07 12:18:20 · 522 阅读 · 0 评论 -
C++ vector 删除符合条件的元素
C++ vector中实际删除元素使用的是容器vecrot中std::vector::erase()方法。C++ 中std::remove()并不删除元素,因为容器的size()没有变化,只是元素的替换。1.std::vector::erase() 函数原型:iterator erase (iterator position); //删除指定元素 iterator ...转载 2019-02-23 14:13:36 · 357 阅读 · 0 评论 -
从PCD文件写入和读取点云数据
(1)学习向PCD文件写入点云数据 建立工程文件ch2,然后新建write_pcd.cpp CMakeLists.txt两个文件 write_pcd.cpp :#include <iostream> //标准C++库中的输入输出的头文件#include <pcl/io/pcd_io.h> ...转载 2019-02-11 17:06:37 · 651 阅读 · 0 评论 -
C++ string中的find()函数
1.string中find()返回值是字母在母串中的位置(下标记录),如果没有找到,那么会返回一个特别的标记npos。(返回值可以看成是一个int型的数) 1 #include<cstring> 2 #include<cstdio> 3 #include<iostream> 4 using namespace std; 5 int main()...转载 2019-02-11 14:12:20 · 1875 阅读 · 0 评论 -
STL之三:deque用法详解
deque函数:deque容器为一个给定类型的元素进行线性处理,像向量一样,它能够快速地随机访问任一个元素,并且能够高效地插入和删除容器的尾部元素。但它又与vector不同,deque支持高效插入和删除容器的头部元素,因此也叫做双端队列。deque类常用的函数如下。(1) 构造函数deque():创建一个空dequedeque(int nSize):创建一个deque,元素个转载 2016-07-16 19:36:22 · 3123 阅读 · 0 评论 -
STL之四:list用法详解
list容器介绍相对于vector容器的连续线性空间,list是一个双向链表,它有一个重要性质:插入操作和删除操作都不会造成原有的list迭代器失效,每次插入或删除一个元素就配置或释放一个元素空间。也就是说,对于任何位置的元素插入或删除,list永远是常数时间。常用函数(1) 构造函数list c:创建一个空的listlist c1(c2):复制另一个同类型元素的list转载 2016-07-16 19:37:29 · 498 阅读 · 0 评论 -
Visual Studio 2015专业版创建Win32控制台应用程序,C,C++源文件
问题:原配的Visual Studio 2015专业版不像之前的版本,在新建项目里面是找不到Win32模板的,那么怎么才能新建Win32项目和Win32控制台应用程序呢?先看如下图所示:解决:1、添加的办法是点击上图所示的新建项目界面的Visual C++下面的Windows,再点击右边的“安装通用Windows平台工具”,弹出如下对话框,点击“安装”:2、如果当前转载 2017-05-17 15:44:11 · 3894 阅读 · 1 评论 -
error: 'vector' does not name a type
编译是出现这个错误:[cpp] view plain copyerror: 'vector' does not name a type 解决方式:在文件开头添加如下代码:[cpp] view plain copy#include using name转载 2017-10-30 16:07:15 · 8354 阅读 · 2 评论 -
getaddrinfo, getnameinfo(替代gethostbyname, gethostbyaddr), gethostname
http://beej.us/guide/bgnet/output/html/multipage/gethostbynameman.htmlhttp://baike.baidu.com/link?url=3qVTFgQmU8MMzq33GlJwPwQkJr8lKZDVLAKNOQfA_GEytnp5EPc3E9gnTwyaL0WqT5oJDqTjf9rY1JoTMrLUvq转载 2017-10-31 09:23:24 · 1703 阅读 · 0 评论 -
CMake快速入门教程:实战
转自http://blog.csdn.net/ljt20061908/article/details/11736713 0. 前言 一个多月前,由于工程项目的需要,匆匆的学习了一下cmake的使用方法,现在有时间拿出来整理一下。本文假设你已经学会了cmake的使用方法,如果你还不会使用cmake,请参考相关资料之后再继续向下看。 本文中介绍的是生成可执行程序的方转载 2017-10-31 12:35:04 · 309 阅读 · 0 评论 -
thread_create会导致内存泄露
这几天一直在调试一个系统,系统的功能就是定时发送数据、接收数据然后解析收到的数据,转换成一定的格式存入数据库中。我为了并发操作,所以每接收到一个数据包,就调用pthread_create函数创建一个默认属性的线程进行处理。 系统一开始运行很正常,但是当接收到第299个数据包时,就发生异常,查看程序日志,得知原来自接收到299个数据包后,就不再解析接收到的数据。我本以为是网络的问题,于是,转载 2018-01-20 14:55:27 · 534 阅读 · 0 评论 -
C++ 泛型基础
泛型的基本思想:泛型编程(Generic Programming)是一种语言机制,通过它可以实现一个标准的容器库。像类一样,泛型也是一种抽象数据类型,但是泛型不属于面向对象,它是面向对象的补充和发展。在面向对象编程中,当算法与数据类型有关时,面向对象在对算法的抽象描述方面存在一些缺陷。比如对栈的描述:class stack{ push(参数类型) //入栈算法 pop(参数类型) /...转载 2018-05-17 09:22:59 · 203 阅读 · 0 评论 -
c++ pair 用法详解
C++pair类型标准库类型--pair类型定义在utility头文件中定义1、pair的创建和初始化pair包含两个数值,与容器一样,pair也是一种模板类型。但是又与之前介绍的容器不同,在创建pair对象时,必须提供两个类型名,两个对应的类型名的类型不必相同pair<string,string>anon;pair<string,int>word_...转载 2018-08-07 16:48:00 · 1903 阅读 · 0 评论 -
STL空间配置器allocator详解
stl六大组件简介我们知道,stl有容器,空间配置器,适配器,迭代器,仿函数以及算法这6个组件,它们六者关系大概如下:容器通过配置器取得数据存储空间,算法通过迭代器获取容器内容,仿函数可以协助算法完成不同的策略变化,配接器可以修饰或套界仿函数。侯捷在《STL源码剖析》一书讲到:这里写图片描述因此我们需要先去学习空间配置器。预备知识一般来说,我们习惯的C++内存配置和释放操作是...转载 2018-10-11 20:20:30 · 224 阅读 · 0 评论 -
c++,new,delete,成员指针
new和delete用来申请动态内存空间,一定要配对使用#include <string> #include <ctype.h>#include <vector>#include <iostream> #include <fstream>// using declarations states our in...转载 2018-10-08 16:01:10 · 591 阅读 · 0 评论 -
用C++开发STM32程序
今天这篇文章有点复杂,大家要注意一点看啦!我们知道KEIL是支持C++的,网上一搜索也能找到一些使用C++的方法,无非是在Keil里的options->C/C++->Misc Controls里添加—cpp,如果要支持c++11,还需要指定—cpp11。事实上这样的C++并不是完整意义的上的C++,本人测试过,有好多C++的新功能都是没有办法实现的。这里需要注明的是,在KEIL5....转载 2018-10-09 10:38:41 · 6672 阅读 · 0 评论 -
使用CMake构建项目的简明示例
1.需求[1].使用第三方动/静太库[2].本身代码部分编译为动/静态库[3]多项目管理2.构建一个单独的项目[1]目的:这个项目将生成可执行文件,动态和静态库。先在workspace(or anywhere you like)下建立项目的目录(文件)结构:workspace |—— HelloWorld ...转载 2018-12-22 16:14:32 · 579 阅读 · 0 评论 -
CMake error 合集(Configuring incomplete errors occurred!)
其实,每次碰到要安装一些软件啊,通常软件的源码都是c/c++,刚开始LZ不理解,从来都是跟着Readme.txt,一步步安装,如果说一帆风顺的把软件安装好了,也就罢了,很可能不会深究到底cmake .cmake ..make allmake -j4make install上述列出来的到底是什么含义,直接机械式地先安装依赖库,经常用的也就是:sudo apt-get instal...转载 2018-12-22 16:25:49 · 6415 阅读 · 0 评论 -
C++ stringstream介绍,使用方法与例子
From: http://www.usidcbbs.com/read-htm-tid-1898.html C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。 istringstream类用于执行C++风格的串流的输入操作。 ostringstream类用于执行C风格的串流的输出...转载 2019-02-11 09:21:45 · 842 阅读 · 0 评论 -
#pragma pack(1) 的意义是什么
设置结构体的边界对齐为1个字节,也就是所有数据在内存中是连续存储的。比如你在C语言中定义下面这样的结构体:struct s {char ch;int i;};然后在主函数中写一句:printf("%d", sizeof(struct s))也就是输出结构体s所占的字节数你觉得输出结果会是多少呢?我们知道,char型占用1个字节,int型占4个字节,那么输出的结果是5...转载 2019-06-22 11:15:31 · 10973 阅读 · 2 评论