C++
文章平均质量分 81
踏雪_尋梅
这个作者很懒,什么都没留下…
展开
-
tm*释放问题(关于localtime、gmtime易出错的知识点)
使用gmtime方法时,对返回值tm*做了释放处理,出现错误:int UnixTime2TimeId(time_t &stampTime){ tm *pTm = gmtime(&stampTime); int timeId(0); timeId = (int)((pTm->tm_hour * 3600 + pTm->tm_min * 60 + pTm->tm_sec) / 30); if (timeId == 0) timeId =原创 2020-06-08 17:35:08 · 1852 阅读 · 0 评论 -
C++ sort函数 invalid operator 小于 的解决方法
文章转载自:https://blog.csdn.net/zhouworld16/article/details/6220331前些时候写了个sort的compare函数,错误"Expression : invalid operator <",baidu+google了一下,没有找到比较明确的说法,不过找到了微软的一个网页,说得算是很清楚,不过看得不太明白。意思大概是出这个错是因为VS20...转载 2019-10-17 16:56:59 · 409 阅读 · 0 评论 -
错误relocation R_X86_64_32 can not be used when making a shared object; recompile with -fPIC的解决方法
背景:centos系统,使用eclipse生成c++动态库问题:提示png库relocation R_X86_64_32 can not be used when making a shared object; recompile with -fPIC解决方法:重新编译png库。方法一:网上找的方法,时灵时不灵。。。cd libpng-1.2.32/./configure打开...原创 2019-01-09 10:43:39 · 1155 阅读 · 0 评论 -
STL sort详解
参考博客:https://blog.csdn.net/wangshubo1989/article/details/52806027最近用到c++ STL中的sort函数,由于不熟悉,查找的博客中也有些小漏洞,走了些弯路。所以自己摘录修改了一篇博客以便记录。1 数组排序#include <algorithm>#include <iostream>#inclu...转载 2019-02-01 12:32:04 · 403 阅读 · 0 评论 -
GDAL集成GEOS编译笔记
使用某些GDAL函数时报错:ERROR 6: GEOS support not enabled,查询后原因是GDAL默认编译未集成GEOS库。遂查询资料手动集成GEOS库编译GDAL,并以博客的形式记录下来。环境:WIN7系统(x64),VS2013。版本:GDAL-2.2.3,GEOS-3.7.1。(注:使用GDAL其他版本可能遇到诡异的错误(亲身经历。。。),当然你也可以尝试其他版本,...原创 2019-02-21 16:29:08 · 2644 阅读 · 0 评论 -
eclipse没有规则可以创建"****"需要的目标"****"。停止
背景:centos64下,使用eclipse修改别人编写的c++工程,Build Project时报错。错误:解决方法:清除Debug文件夹,重新Build。另:lib路径或文件配置错误也可能会报该错误,修改别人的工程时应注意。...原创 2019-02-13 13:40:22 · 1745 阅读 · 0 评论 -
vs2013设置条件编译
文章转自:https://blog.csdn.net/qq_35488967/article/details/53811790,如有侵权请联系本人删除。当我们的C++项目需要用到不同的库时,我们自然需要在debug和release下分别加载这个库的debug版和release版。 这在vs2013中设置起来非常方便,vs的其他版本设置类似。PS:条件编译在跨平台开发等场景中应用也非常方便,具...转载 2019-02-19 16:16:30 · 771 阅读 · 0 评论 -
关于形如--error LNK2005: xxx 已经在 msvcrtd.lib ( MSVCR90D.dll ) 中定义--的问题分析解决
没找到原文,也不知道是哪个大神写的,附一个转载的链接吧:https://blog.csdn.net/u013827216/article/details/52935014提示:阅读前需要对静态库(.lib)、动态库(.dll)、导入库(这个还是.lib)之间的区别联系有了解。建议先读读宋宝华先生的《VC++动态链接库(DLL)编程深入浅出 》关键词:程序库、CRT、LIBCMTD.lib、...转载 2019-02-20 17:24:19 · 252 阅读 · 0 评论 -
linux链接jsoncpp库时,报一堆标准库错误的解决方法
最近在一个工程中链接jsoncpp库,Makefile文件中添加包含路径代码:-I/usr/local/include/json/ \编译时报错:/usr/include/stdio.h:821: 错误:‘FILE’在此作用域中尚未声明/usr/include/stdio.h:821: 错误:‘__stream’在此作用域中尚未声明/usr/include/stdio.h:823: 错...原创 2019-03-08 17:48:09 · 1156 阅读 · 0 评论 -
json结构转换字符串之空格符与换行符的处理(jsoncpp)
jsoncpp中有两种将结构体数据转换为json字符串的方法:toStyledString()和FastWriter中的write方法。两种方法的区别在于是否格式化,即是否包含空格符和换行符。 Json::Value root; ...//root中写入数据 //方法一:转为格式化字符串,里面加了很多空格及换行符 string strJson1 = r...原创 2019-03-29 14:19:37 · 10488 阅读 · 0 评论 -
vs代码块折叠(c++)
记录一下vs代码块折叠方法:1.使用大纲语句块:工具->选项->文本编辑器->查看->大纲语句块。该方法可对条件判别语句(if、else等)、循环语句(for、while等)等的大括号内代码块进行折叠。折叠后:2.使用pragma region#pragma region 变量名/函数名//代码段#pragma endregion 变量...原创 2019-05-31 12:18:07 · 4922 阅读 · 1 评论 -
关于vs程序debug版本和release版本运行结果不一致
最近遇到debug版本和release版本运行结果不一致的问题,记录一下查询的资料以及自己的解决方法。1.原因分析造成这种结果的原因通常是自己的代码不正确,一般是以下两种原因造成:(1)对变量的初始化不一致或未初始化。debug是将每个字节位都赋成0xcc(注1),而release的赋值近似于随机。(2)内存访问越界,在debug模式下,每块内存前后都有保护字节,就不是大问题,但是...转载 2019-06-25 14:50:02 · 4845 阅读 · 0 评论 -
隐式转换问题(c++)
最近遇到一个问题,time_t(__int64)类型与float类型直接相加得到的结果是错误的:time_t curTime = 1563924292;float timeOffset = 3.56951;time_t result = curTime + timeOffset; //结果为1563924352,计算错误错误原因涉及算术运算中的隐式转换规则,遂查阅资料整理了相关知识。...原创 2019-09-19 11:17:43 · 698 阅读 · 0 评论 -
C++ pair的比较大小
文章转自:https://blog.csdn.net/u013569304/article/details/51147000std::pair 是可以比较大小的有这样的全局函数template<class _Ty1, class _Ty2> inline bool operator<(const pair<_Ty1, _Ty2>& ...转载 2018-12-19 14:22:43 · 4978 阅读 · 0 评论 -
unsigned char表示byte/字节及存取数据
1.unsigned charunsigned char常用来表示byte,原因如下:char与unsigned char都占用一个字节(8byte)的内存,unsigned char无符号位,byte也无符号位这一说法。但是将byte的值取出赋值给int,long等其它类型时,系统会最高位进行扩展。如果使用符号类型(char),则以符号位(最高位)扩展,会造成数据错误;如果使用无符号类型...原创 2018-11-23 17:43:47 · 25446 阅读 · 5 评论 -
1.#INF、-1.#INF、1.#IND、-1.#IND 问题
在运行C++程序时,结果中出现-1#IND,发现计算结果是错误的,就在网上搜了一些资料,总结了下。C/C++程序运行有时候会出现-1.#IND,1.#INF1.#INF:这个值表示“无穷大inf (infinity 的缩写)”,即超出了计算机可以表示的浮点数的最大范围(或者说超过了 double 类型的最大值)。一般来说是除数为0得出的结果,例如,当一个整数除以0时便会得到一个1.#INF...转载 2018-11-02 13:53:02 · 15930 阅读 · 2 评论 -
for循环中的数组越界陷阱
(1)反序循环for(unsigned int k = vector.size() - 1; k >= 0; k--){}此处会报数组越界,原因是k为unsigned int类型,循环最后一次判别时k<0,会变为该类型的最大值。解决方法是:在反序遍历数组时,k使用int类型。(2)正序循环for(int k = 0; k < vector.size() - 1...原创 2018-06-11 14:29:45 · 4552 阅读 · 1 评论 -
VC++中解决“在查找预编译头使用时跳过”的方法
问题描述:“#include "person.pb.h"”: 在查找预编译头使用时跳过解决方法:(1)去掉预编译头项目->属性->配置属性->c/c++->预编译头->创建使用预编译头->不使用预编译头 (2)将包含文件加到预编译头stdafx.h文件中 (3)在每个.cpp中包含预编译头stdafx.h文件注意:#includ...转载 2018-06-11 18:21:36 · 1947 阅读 · 0 评论 -
vector、list、map、set中的erase用法
(1)list与vector list与vector中的erase用法相同,它们的 erase 函数会返回指向下一个元素的迭代器,因此在遍历时,只需要 it = c.erase(it); 即可。如示例代码:vector<int>::iterator it = vec.begin(); for (; it != vec.end();) { if (*i...原创 2018-06-11 09:51:02 · 2098 阅读 · 1 评论 -
OpenCV正态贝叶斯分类器中的vector用法探索
应用OpenCV正态贝叶斯分类器的时候,在网上找的例子数据都是静态数组。本人想用c++ STL中的vector来对数据进行组织,达到样本长度可变的目的。但是程序一直报断言错误,类似于error assertion failed ( 0 <= i && i < <int> vv.size())...... 问题一直没解决,但是...原创 2018-07-18 18:32:25 · 333 阅读 · 0 评论 -
windows环境下_findnext()调试出现访问冲突异常。
windows7,x64,VS2013环境下,使用_findnext()获取某文件夹内某类型文件名,报异常: 0x0000000077AEDA56 (ntdll.dll) ...处的第一机会异常: 0xC0000005: 写入位置 0xFFFFFFFFFFB55F3460时发生访问冲突。如图所示: 异常代码如下:void GetFiles(std::stri...原创 2018-09-06 16:42:26 · 2849 阅读 · 2 评论 -
_tmain(int argc, _TCHAR* argv[])获取当前路径
使用argv[0]获取当前路径:int _tmain(int argc, _TCHAR* argv[]){ string strAppPath(argv[0]); return 0;}使用时报错:IntelliSense: 没有与参数列表匹配的构造函数 "std::basic_string<_Elem, _Traits, _Alloc>::basic_string...原创 2018-09-12 16:47:21 · 822 阅读 · 0 评论 -
Return has value, in function returning void错误
在eclipse中写类的成员函数时,提示错误Return has value, in function returning void,编译后报错:错误:a function-definition is not allowed here before '{' toke......错误原因:经检查,是该成员函数前面的函数中,少写了一个}。总结:编程需细心!编程需细心!编程需细心!重要的事情说三...原创 2018-09-18 11:13:31 · 16587 阅读 · 1 评论 -
(**.exe 中)处有未经处理的异常: 堆已损坏
问题描述:Debug模式下调试程序没有异常,在Release模式下运行,主程序退出时报异常。。。(**.exe 中)处有未经处理的异常: 。。。 堆已损坏。出错原因:先上一段简单的代码。class MyClass1{}class MyClass2{}class ClassManager{public: ClassManager(MyClass1* class1, ...原创 2018-09-11 10:40:29 · 8429 阅读 · 0 评论 -
Thrift语法简介与实例(c++)
最近工作中使用了thrift,作为小白,摘录和总结了一些thrift基本语法及使用实例,仅做记录1 类型Thrift类型系统包括预定义基本类型,用户自定义结构体,容器类型,异常和服务定义1.1 基本类型bool: 布尔类型,占一个字节byte: 有符号字节 //对应C++ chari16:16位有符号整型 //对应C++ shorti32:32位有符号整型 ...原创 2018-10-18 18:08:44 · 3153 阅读 · 0 评论 -
关于Linux下获取某路径下文件名的顺序问题(c++)
问题描述:想实现备份文件模块:五分钟备份数据一次,若文件小于10M,则向文件追加;若文件达到10M,则创建新文件。采用的方法是,以文件创建时间命名文件,备份文件时,使用readdir()方法获取备份目录下的文件名,判断最后一个文件(最新的文件)是否达到10M大小。查看备份文件,第一个备份文件没有问题;之后的备份文件大部分都很小,只有少部分达到10M。代码如下:void getFile...原创 2018-10-22 13:27:56 · 1647 阅读 · 0 评论 -
c++ vector中的resize与reserve
关于STL中vector的resize与reserve方法,作以下记录:1.reserve(n):预分配n个元素的存储空间。如:vector<int> vecData;vecData.reserve(10);调用reserve(10)方法后,则为vecData预分配了可以存储十个int对象的存储空间,但仅仅是分配空间,里面并没有存储对象。我们知道容器中会有初始预...原创 2018-11-04 13:07:14 · 988 阅读 · 0 评论 -
容器内元素为指针时,重复释放指针报错
使用容器时报错:expression:(“_Pvector == NULL || (((_Myvec *)_Pvector)->_Myfirst<= _Ptr && _Ptr <= ((_Myvec*)_Pvector)->_Mylast)”, 0)原代码:std::map<unsigned long long, Link*>::it...原创 2018-06-11 14:25:30 · 501 阅读 · 0 评论