C++
文章平均质量分 63
介绍C++相关的编程技术
ISmileLi
爱人生,爱微笑,一个爱分享的程序猿!
展开
-
C++无名命名空间中定义的函数不使用造成“-Wunused-function”警告问题
C++ 语言就是博大精深,各种语法问题,都值得深入探究一下,很多时候你觉得会用了、感觉明白了,真到使用的时候又会出现一些疑惑,这篇文章就来探究一下,C++中无名命名空间使用问题,问题的探究,是从下文章节一中的警告开始的。环境是在ubuntu16下使用vscode配置cmake命令编译调试的。原创 2023-02-08 21:37:09 · 2284 阅读 · 1 评论 -
xml文件中CDATA字段的写入-tinyxml2
tinyxml2写入CDATA字段问题原创 2023-02-08 18:52:18 · 696 阅读 · 0 评论 -
C++版NumPy-Eigen库快速入门
Eigen库的使用零、前言一、Eigen矩阵类1、矩阵类模板参数2、向量3、特值动态4、矩阵和向量的初始化5、矩阵和向量的存取6、逗号初始化7、调整大小二、矩阵和向量算法1、加减2、标量乘法和除法3、转置、共轭和伴随4、矩阵矩阵和矩阵向量乘法5、点积和叉积6、基本算术归约运算7、操作的有效性三、数组类和按系数运算1、数组类2、访问数组内的值3、加减4、数组乘法5、其他系数运算6、在数组和矩阵表达式之间转换四、块操作1、使用块操作2、列和行3、与角相关的操作4、向量的块运算五、Eigen高级初始化1、逗号初始原创 2020-12-19 23:29:32 · 4649 阅读 · 5 评论 -
C++ 自动推导类型auto用起来真是爽歪歪啊
C++ 自动推导类型auto零、写在前面一、auto类型的推导语法二、auto操作容器三、auto的使用限制零、写在前面C++的auto在C++98和C++03的时候已经存在,它被用来自动存储变量,直到C++11它才被赋予新的含义,可以自动推导各种类型了,从而大大地提高了C++程序的书写效率,也使C++具备了python、java等语言让编译自动去推导类型的能力,而不用刻意的去定义一个变量的类型。一、auto类型的推导语法C++11赋予auto的新含义,让它具备了自动推导类型的功能,这样就不需要我们原创 2020-09-19 17:33:57 · 544 阅读 · 0 评论 -
C++已经有了const,为什么还要增加一个新关键字constexpr?
const和constexpr一、可执行程序的出生过程一、const和constexpr二、必须使用constexpr的场景三、const和constexpr区别与联系一、可执行程序的出生过程一个源程序到一个可执行程序的过程必须经过预编译、编译、汇编、链接,最后打包成可执行的程序。预编译会处理各种条件编译指令,如#if、#endif等,对#define等进行宏展开,保留一些必要编译指令如#pragma,删除一些不必要的注释等等,预编译是为了后面的编译做准备。编译会把预编译生成的.i/.ii文件进行语原创 2020-09-19 16:04:17 · 771 阅读 · 1 评论 -
C++新特性元组-tuple
C++中的元组-tuple一、小序二、tuple简介三、tuple的使用示例一、小序python程序员一定对元组这个词非常熟悉,python中的元组很强大,刚接触python时我一直认为python中的元组是对C++数组的封装,吸收了C++的数组的精华并进行了扩展。C++11以后直接增加了元组这个数据结构,或许是C++标准制定者看到了python中元组的方便,索性也直接吸收了吧。自从C++中增加了元组之后,每当一个函数需要返回多个值时,我就会想到使用元组-tuple。二、tuple简介tuple是一原创 2020-06-16 00:16:24 · 1134 阅读 · 1 评论 -
C++11新特性:using和namespace的特殊用处
using和namespace的特殊用处零、前言一、using1、类型别名2、别名模板3、代码示例二、namespace1、命名空间2、命名别名3、使用示例零、前言C++11以后增加了许多新的特性,这些新的特性越来越方便C++程序员的编码,也再次赋予了C++新的活力与朝气!截止到目前C++20的标准已经出来了,C++这位“老先生”正在紧跟时代的步伐!作为Cpper也应该紧跟这位“老先生”脚步。...原创 2020-04-05 18:12:36 · 3539 阅读 · 1 评论 -
C++中的类型转换运算符dynamic_cast、static_cast、const_cast和reinterpret_cast详解
C++中的类型转换运算符零、小序一、dynamic_cast1、关于dynamic_cast2、代码示例二、static_cast1、关于static_cast2、代码示例三、const_cast1、关于const_cast2、代码示例四、reinterpret_cast1、关于reinterpret_cast2、代码示例五、总述零、小序C++程序员都知道,C语言中的强制转换和万能转换指针“v...原创 2020-04-04 15:27:54 · 565 阅读 · 1 评论 -
C++ vector中存放指针,从vector里面取出的一个指针应该释放空间吗?
vector中取指针需要释放吗零、小序一、先来看一段代码1、代码示例2、这段代码能正常运行吗3、运行现象二、正确的示范零、小序vector是C++程序员经常使用的一种序列化容器,可以说C++程序员每天都在使用,vector中可以存放各种类型的数据,使用起来简单方便。vector用来存放指针这不是一个新鲜事,vector释放空间也不是新鲜事,那么从vector中单独取出来一个指针,这个指针使用完...原创 2020-03-27 19:49:02 · 10829 阅读 · 2 评论 -
C++中的lambda表达式,这样学习就对了!
C++中的lambda表达式零、小序一、lambda表达式介绍1、lambda表达式概念2、lambda表达式的优势3、lambda表达式基本语法4、lambda表达式捕获外部变量方法二、lambda表达式代码示例零、小序学习过java、Python等语言的童鞋可能早就知道lambda表达式,C++直到C++11中才引入了lambda表达式,lambda表达式使用方便、代码简洁、定义和使用在同...原创 2020-03-26 20:34:50 · 8816 阅读 · 2 评论 -
C++中的仿函数有点难,这篇文章却讲的通俗易懂!
C++中的仿函数零、小序一、仿函数介绍1、仿函数概念2、仿函数的优缺点3、仿函数作用二、仿函数使用代码示例1、仿函数作为排序规则示例2、作为判别式示例3、拥有内部状态示例4、作为算法for_each的返回值示例零、小序仿函数是C++中一个强大的解决问题的手段,对于初学者来说这个词可能比较陌生,但是如果你学习过C++的STL,你可能对这个词就不陌生了,也或许你已经在使用C++中预定义的默认仿函数...原创 2020-03-25 20:10:39 · 7625 阅读 · 12 评论 -
C++中的字符串string,你真的弄懂了吗?
字符串string一、string类简介二、string类的使用1、string类的初始化方法2、string类的大小3、string类的元素访问4、string比较操作5、字符串的修改6、字符串的替换7、字符串的连接8、字符串的查找一、string类简介string类是C++中用来操作字符串序列的、可以自身管理内存的容器,自身携带的构造函数和析构函数,可以让我们直接使用而不必关心内存的分配细...原创 2020-03-20 20:12:44 · 798 阅读 · 0 评论 -
面试官总喜欢问的几个C++容器,你掌握了几个?
C++常用容器零、前言一、vector1、vector概述2、vector优缺点3、vector代码示例二、list1、list概述2、list优缺点3、list代码示例三、map1、map概述2、map优缺点3、map代码示例四、set1、set概述2、set优缺点3、set代码示例五、deque1、deque概述2、deque优缺点3、deque代码示例六、各个容器的使用场景1、容器使用场景2...原创 2020-03-19 23:17:04 · 1310 阅读 · 0 评论 -
学习C++这么多年了,数组指针和指针数组还是傻傻分不清?
数组指针和指针数组零、前言一、数组指针二、指针数组三、数组指针和指针数组的识别方法四、数组指针和指针数组的使用1、数组指针和指针数组的内存2、代码测试零、前言数组指针和指针数组是每一个C++程序员心中永远的痛点!即使工作多年,也常常分不清这对”双胞胎“兄弟!虽然工作中不常使用或者使用了替代方案,但每当你要找一份新工作时,总需要要翻翻看看它们。面试题中经常出现它们的身影,面试官有时候为了试探你对...原创 2020-03-16 20:49:03 · 270 阅读 · 0 评论 -
C++ 智能指针的使用
一、动态指针说明 C++中主要使用new和delete来分配和释放内存,但有时候我们常常因为忘记delete而造成内存泄漏的问题。于是C++中出现了智能指针模板类来管理动态内存,以避免因为我们“遗忘”而造成内存泄漏的问题。C++中标准的智能指针有4个:auto_ptr、shared_ptr、unique_ptr、weak_ptr。这4个智能指针的头文件都在memory中。1、auto_ptr...原创 2018-07-29 15:53:56 · 2946 阅读 · 0 评论 -
C++ 智能指针unique_ptr和lambda表达式结合使用问题
一、项目中使用智能指针unique_ptr和lambda表达式结合使用时出现下面的问题: “/work/test/testAutoPtr/main.cpp:24: error: use of deleted function ‘std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_ptr<_Tp, _Dp>&...原创 2018-07-31 21:17:26 · 5180 阅读 · 0 评论 -
C++结构体前置声明出现"找不到类型"错误问题
一、想在一个结构体B中使用另一个结构体A,一个方法是我们直接把结构体A先定义在结构体B的前面然后再使用,这当然没有。但如果A定义在了B的后面而又想在中使用A结构体,该怎么办呢?我们当然能想到使用前置声明,可我们在结构体B前面声明了结构体变量A然后在B中使用结构体A定义变量会报“找不到类型”的错误,这是怎么回事呢?形如:struct test_A;struct test_B{test_A ...原创 2018-11-14 00:07:51 · 3527 阅读 · 1 评论 -
C++和python混合编程之在python类构造函数中传参方法
一、说明:C++项目中用到python相关的知识,这两天研究了一下C++与python的混合编程,网上有很多这方面的介绍,但是怎么使用python类的构造函数中传参的介绍却没有,这里研究一下,分享出来。(C++和python相互调用的相关接口查询https://docs.python.org/2/index.html)二、测试代码1、C++代码:/*=================Cplu...原创 2018-11-25 19:19:16 · 3669 阅读 · 2 评论 -
C++创建和删除文件夹的方法
一、说明:下面的测试代码在linux下运行通过二、测试代码:1、boost库和linux下的库函数#include <iostream>#include "boost/filesystem.hpp"#include <sys/types.h>#include <sys/stat.h>#include <dirent.h>using ...原创 2018-12-22 15:16:39 · 1013 阅读 · 0 评论 -
C++正则表达式regex_match,regex_search和regex_replace简单使用
一、说明:C++11之后引入了正则表达式,给文本处理带来了很多方便的地方,正则表达式处理能力很强但想熟练使用并不容易,C++中主要使用下面的三个函数进行正则表达的操作。1、regex_search:在整个字符串中匹配到符合正则表达式规则中的一部分就返回true,也就是子串。2、regex_match:在整个字符串中匹配到符合整个表达式的整个字符串时返回true,也就是匹配的是整个字符串。3...原创 2019-01-25 19:19:57 · 12919 阅读 · 1 评论 -
C++ vector内存管理使用解析-你真的学会vector了吗?
一、使用vector时出现如下的错误:‘’terminate called after throwing an instance of ‘std::length_error’ what():vector::_M_default_append“”一直不太明白怎么回事,查到了一篇文章https://stackoverflow.com/questions/21847421/vector-reallo...原创 2019-02-01 17:52:31 · 9272 阅读 · 2 评论 -
vector之resize剖析-曾经的我以为自己真的学会了vector
一、先看下面一段代码vector<int> tempVector; tempVector.resize(5); tempVector.push_back(1); tempVector.push_back(2); tempVector.push_back(3); tempVector.push_back(4); tempVector.pu...原创 2019-03-13 22:35:26 · 2414 阅读 · 2 评论 -
C++中判断数字某一位是否为1的方法之bitset
一、问题描述:工作中遇到把一个数转化成32位后,判断某一位是否为1.没有使用逻辑运算符,直接使用C++提供的bitset,特别方便。二、测试代码#include #include using namespace std;int main(){// 00000000 00000000 00000000 00001000bitset<32> tempBitset(8);b...原创 2019-03-31 15:14:08 · 5339 阅读 · 0 评论 -
linux下Gtest安装配置使用-一个牛逼的开源测试框架!
一、参考网址:步骤参考下面的网址即可,Gtest文件下的REDME文件。1、http://www.mamicode.com/info-detail-1740378.html二、出现的错误:libgtest.a(gtest-all.cc.o):error: In function ‘testing::internal::ThreadLocaltesting::TestParResultRep...原创 2019-10-11 20:11:32 · 1237 阅读 · 0 评论 -
string类型和数值类型之间的转换
一、C++11新特性中string类型和数值类型的转换方法 1、数值类型转string函数 string to_string (int val); string to_string (long val); string to_string (long long val); string to_string (unsigned val); string to_string (unsign...原创 2018-07-29 11:55:16 · 2732 阅读 · 0 评论