C/C++
C/C++基本用法实践和经验总结
zhanghm1995
香港中文大学(深圳)在读博士生
展开
-
C++随机数生成器及分布器相关
STLstd::accumulate用法:float z_sum = std::accumulate(line.points.begin(), line.points.end(), 0.0f, [](float a, noah::LanePoint b) { return a + b.z; });std::vector<std::shared_ptr<GRANSAC::AbstractParameter>> GenerateCandidatePoint原创 2020-07-24 00:04:54 · 422 阅读 · 0 评论 -
C++常见问题及解决方案汇总
error: ‘make_unique’ is not a member of ‘std’问题解释:在编译使用了std::make_unique语句的代码时,如果出现上述的错误,说明该编译器不支持C++14标准,因为std::make_unique是在C++14以后新加入的函数,用来创建std::unique_ptr智能指针对象。解决方法:1、尝试升级编译器版本支持C++14标准;2、在代码中自己定义这个函数:#include <memory>namespace std {tem原创 2020-07-23 23:28:18 · 2976 阅读 · 1 评论 -
不能再详细的C++基本数据类型剖析
如何打印数据类型:https://zh.cppreference.com/w/cpp/language/typeidhttps://stackoverflow.com/questions/16396304/strange-output-of-stdtypeidnamehttps://blog.csdn.net/chenyiming_1990/article/details/8979260基本数据类型定义:https://www.runoob.com/cplusplus/cpp-constants-原创 2020-06-25 18:32:06 · 524 阅读 · 0 评论 -
C++字符串操作之字符串自然排序
有时候我们需要对字符串进行排序,如果该字符串只包含数字或者只包含字母时,都有比较直接的排序,直接调用std::sort方法就可以完成排序。但是如果我们字符串既包含数字,又包含字母时,例如对包含数字或字母的文件名字符串进行排序时,一般我们希望首先按照字符串开头数字的大小进行排序,然后按照字母的顺序进行排序,有点像是我们操作系统文件浏览器查看文件时的一种排序,这也叫做自然排序。这在C++中如何实现呢...原创 2019-12-22 12:30:34 · 4144 阅读 · 1 评论 -
C++类的const成员函数与成员变量
本篇博文是C++中的const成员函数(函数声明后加const,或称常量成员函数)用法详解:const成员函数与mutable变量const成员函数能够被const常量对象调用,而且const常量也只能调用const成员函数,所以即使一个函数没有修改对象值的行为,如果没有加上const限定符说明是常函数,那么const对象(包括const引用)依然不能调用它。例如:struct Objec...原创 2019-11-16 10:45:24 · 608 阅读 · 2 评论 -
C++中可变参数宏定义用法实践
本博文的目的是记录在C++中使用可变参数宏定义的过程,通过一些实际编写的代码和查看效果,来熟悉可变参数宏定义的使用方法和注意事项。由于查询的资料来看,这种可变参数宏定义实际表现效果与所用的语言和编译器有关,因此首先列出我下面所有测试代码所用的语言和编译器版本,方便大家实际对照。编译环境:语言: C++ 11编译器: gcc 5.4.0系统: Ubuntu16.04C++宏定义基本概...原创 2019-09-07 16:16:33 · 10747 阅读 · 2 评论 -
C++格式化读入文本文件操作——字符串分割操作
在编程过程中,我们经常会使用到文本文件进行数据保存操作,这些保存的文件中内容要么就是用逗号分隔、要么就是用空格进行分割,在利用程序进行读取时,我们关心的是实际的内容,不管是用什么符号分割开。本博文就介绍一下在C++中常用的格式化读入文本文件的操作。前提说明假设有文件output.txt,其中每一行一组数据,数据之间利用空格分隔,如下图所示:其中第一列为行号,后面每组17个数值(有字符串...原创 2019-03-04 18:59:28 · 5413 阅读 · 0 评论 -
STL学习之——vector向量容器使用详解
一、概述vector是C++标准模板库中的一个重要组成部分,vector是一个向量容器,是一种动态数组。它能够存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,可以动态改变大小。支持快速随机访问。 注意: vector将元素保存在连续的内存空间中,由于元素是连续存储的,由元素的下标来计算其地址是非常快速的,但是在vector容器的中间位置添加或删除元素会非常耗时,在...原创 2018-08-08 15:58:14 · 1679 阅读 · 0 评论 -
C++中string与char等字符串类型与其他类型转换方法总结
C++中字符串类型由于其特殊性,在使用过程中一直困扰着很多初学者,个人觉得下面的一篇博文十分详细的论述了char*相关字符串类型的本质含义: 深入 char * ,char ** ,char a[ ] ,char *a[] 内核string与其他类型转换通用方法其他类型转string类型://ostringstream对象用来进行格式化的输出,常用于将各种类型转换为strin...原创 2018-08-11 19:06:46 · 315 阅读 · 0 评论 -
函数指针和函数对象详解
函数指针在C++中,指针本质就是内存中的某个地址,如果该内存地址中存放的是某个数据,那么这个指针就是常见的数据指针,如果这个内存地址中存放的是某个函数,那么这个指针就是函数指针。 C++中每一个函数都有一个入口地址,该入口地址就是函数指针所指向的内存地址,有了指向函数的指针变量后,就可以用这个函数指针变量调用函数,如果用数据指针变量可以引用它所指向的数据一样。 C++代码经过编译后,每一个...原创 2018-08-10 16:53:44 · 1823 阅读 · 0 评论 -
C++学习资源汇总
C++官方参考网站(英文):可以用来查询各种函数用法 http://www.cplusplus.com/ C+参考手册:开发者查询网站(有中英文) http://zh.cppreference.com/w/%E9%A6%96%E9%A1%B5C++系列讲解网站: 你好C++ http://www.cnblogs.com/nihaoCPP/p/3944067.html 知乎专栏目录:h...原创 2018-07-28 16:24:38 · 726 阅读 · 0 评论 -
C++程序运算时间计算
一般在稍大一些项目中,总会想要得到某段代码的运行时间,C++中有内置函数可以实现该目的,也可以借助其他一些常用库。方法一函数:clock() 用法:#include <ctime> //需包含该头文件,或者包含<time.h>const clock_t begin_time = clock( );.......此处为需要统计运行时间的代码float ...原创 2018-07-03 16:38:06 · 10271 阅读 · 0 评论 -
对C++中一些知识的理解与解析
对编译顺序的理解,特别是预编译指令编译器对于cpp文件的编译永远都是从整个文件的第一行开始编译,对于预编译指令也都是一条一条的执行,而不会说编译器会选择所有的预编译指令先执行,然后再一条一条编译。所有的预编译指令的作用域同其他C++语句一样(即按照是局部定义的还是全局定义的,也都是从该条语句开始,到生命周期结束)。只不过预编译指令具有一些特殊能力,比如对于宏定义的常量,拥有直接将其所定义位置开始,...原创 2018-05-03 08:51:56 · 253 阅读 · 0 评论 -
C++中基本数据类型字节长度小结
C++是一种强类型的语言,其对于变量的存储都直接与计算机内存打交道,在开发一些较大型程序时,必须要清楚其中各种数据类型的字节长度也即存储空间大小,其对于保证程序的移植和兼容性都有着至关重要的作用。C++中通过sizeof()函数可以直接输出数据类型的字节(注意是字节数,每个字节等于8位)。C语言开始时只有char(8位)和int(16位)两种,后来随着发展又加入了short(16位)和lo原创 2017-12-07 19:11:35 · 1022 阅读 · 0 评论 -
C++中常见易错知识点汇总
本篇文章的目的主要是汇总我平时在利用C++编程过程中遇到的各种容易出现错误的知识点,这些知识点大家可能也多多少少有遇到过,我也主要是起到一个带头汇总的目的,帮助更多的C++爱好者提前熟悉,或者巩固这些易错知识点,更加掌握C++语言的特点。以下知识点主要是由我自己实践总结而来,如有错误,还希望有博友能私信我或留言。数组名代表数组中第一个元素的固定地址对于一个数组,int a[原创 2017-11-05 14:13:02 · 919 阅读 · 0 评论 -
C++重要知识点查阅
C++中各个运算符的优先级:ASCII编码表:字符也是一种特殊的整数,取值范围为-128-127。因此字符也是按照整数编码的,每一个字符都有一个整数编码,称为ASCII码。C++中0,‘\0’,‘0’,"0"有什么区别:0就代表阿拉伯数字0‘\0'是转义字符,代表空字符,一般在字符串结尾作为字符串结束标志(很多与字符串处理有关的函数会用到该字原创 2017-10-14 23:14:13 · 313 阅读 · 0 评论