C/C++
acoolgiser
微信搜索:acoolgiser
展开
-
C++ std::vector::resize() 方法解析(菜鸟看了秒懂)
首先介绍一下resize()方法的语法解析:语法定义:C++ 11:void resize (size_type n);void resize (size_type n, const value_type& val);C++ 98:void resize (size_type n, value_type val = value_type());参数: s...原创 2019-11-06 11:45:23 · 22637 阅读 · 0 评论 -
vector中begin(),end()和front(),back()的区别
一、begin函数函数原型:iterator begin();const_iterator begin();功能:返回一个当前vector容器中起始元素的迭代器。二、end函数函数原型:iterator end();const_iterator end();功能:返回一个当前vector容器中末尾元素的迭代器。三、front函数函数原型:re...转载 2019-11-05 16:03:41 · 4208 阅读 · 0 评论 -
c++中结构体struct的初始化和赋值操作
1.结构体的初始化结构体是常用的自定义构造类型,是一种很常见的数据打包方法。结构体对象的初始化有多种方式,分为指定初始化、顺序初始化、构造函数初始化。假如有如下结构体。struct A{int b;int c;}(1)指定初始化(Designated Initializer)实现上有两种方式,一种是通过点号加赋值符号实现,即“.fieldname=value”,另外一种是通过冒...转载 2019-11-05 15:59:12 · 30917 阅读 · 2 评论 -
C++ 错误C2374 错误C2084 错误C2568 头文件 重定义 多次初始化 已有主体
C++ 错误C2374 错误C2084 错误C2568 头文件 重定义 多次初始化 已有主体出现了头文件多次引用、重定义的问题。错误如图:错误原因:参考https://www.cnblogs.com/muchen/p/6138110.html里面讲到用“预定义”的方法避免重定义,其实还可以用#pragma once的方法,如下:https://blog.csdn....原创 2019-11-02 22:32:44 · 5274 阅读 · 0 评论 -
hpp头文件与h头文件的区别 C++中的.hpp文件
hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译。而实现代码将直接编译到调用者的obj文件中,不再生成单独的obj,采用hpp将大幅度减少调用 project中的cpp文件数与编译次数,也不用再发布烦人的lib与dll,因此非常适合用来编写公用的开源库。 ...转载 2019-10-31 10:16:01 · 1300 阅读 · 0 评论 -
C++ String 与 char* 相互转换
一、string->char*1、将string转char*,可以使用string提供的c_str()或者data()函数。其中c_str()函数返回一个以'\0'结尾的字符数组,而data()仅返回字符串内容,而不含有结束符'\0'。2、const char* c_str();c_str()函数返回一个指向C字符串的指针,该指针指向内存内容和string 相同。因为c语言不支持...转载 2019-10-14 16:03:15 · 5157 阅读 · 0 评论 -
c++三种野指针 野指针的概率即产生原因
c++三种野指针野指针,也就是指向不可用内存区域的指针。如果对野指针进行操作,将会使程序发生不可预知的错误,甚至可能直接引起崩溃。野指针不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是野指针是很危险的,也具有很强的掩蔽性,if语句对它不起作用。造成野指针的常见原因有三种:1、指针变量没有被初始化...转载 2019-08-29 16:20:49 · 588 阅读 · 0 评论 -
C++野指针及c++指针使用注意点
内容转自(部分已被本人编辑):https://www.cnblogs.com/mrlsx/p/5419030.html野指针及c++指针使用注意点避免野指针的产生“野指针”的成因主要有:1)指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。...原创 2019-08-29 16:11:33 · 3691 阅读 · 6 评论 -
ProcessShellCommand(cmdInfo) 的用法和功能
ProcessShellCommand()转自:https://blog.csdn.net/wangandy7811/article/details/3663447本文链接:http://user.qzone.qq.com/278288976/blog/1196240170 在我们用向导创建MFC应用程序时,在App::InitInstance()中总会出现下面这样的代码到底是什...转载 2019-08-23 15:55:50 · 775 阅读 · 0 评论 -
MFC(C++)中 __declspec(dllexport) 和 __declspec(dllimport)的作用
从static变量导出问题解析 __declspec(dllexport) 和 __declspec(dllimport)的作用 这段时间要把tinyxml从静态库弄成动态库,要用到__declspec(dllexport)和__declspec(dllimport)来导出dll和lib文件。终于弄明白了export和import的作用,下面从使用的角度来说明一下他们的功能。 首...原创 2019-08-19 16:30:29 · 3163 阅读 · 0 评论 -
[C++11札记]: std::function
在C/C++中函数指针作为一种回调机制被广泛使用,但是函数指针在C++面向对象编程中有些不足,比如无法捕捉上下文。举个例子,使用对象的非静态成员函数作为函数指针就无法做到。仿函数在C++11之前,我们在使用STL算法时,通常会使用到一种特别的对象,称为函数对象,或者仿函数(functor),例子如下:class _functor {public: int operator()(...原创 2019-05-30 20:56:56 · 1747 阅读 · 0 评论 -
MFC vc++ 中CTreeContrl如何自定义实现鼠标单击或双击响应事件 ,即重写类似于控件的响应事件或消息
代码部分摘录自“天上的猩猩的专栏”:https://blog.csdn.net/qq_23992597/article/details/51006920#commentsedit目的:自定义修改mfc窗口的FileView中已有的树结构,而不是添加的树控件实现的效果如图:点击“地图”后弹出框提示,点击响应效果与控件的响应事件类似首先需要重写CtreeContrl:① 在CVie...原创 2018-07-30 15:15:05 · 3663 阅读 · 0 评论 -
Visual Studio 2015 自动生成 *.VC.db 文件的问题
转自博客:https://blog.csdn.net/u012611878/article/details/53574480用vs2015创建Visual C++项目,编写生成后,每次都会生成一个project_name.VC.db文件,而且会随着你工程修改运行变的越来越大。project_name.VC.db是sqlite后端用于intellisense的新数据库,相当于之前的*.sdf...转载 2018-07-25 22:28:59 · 858 阅读 · 0 评论 -
stdafx.h的作用以及原理
注:转自http://www.cnblogs.com/MuyouSome/p/3380033.html stdafx.hVC工程里面经常见到stdafx.h这个头文件,以前也没有特别注意,但是这个文件用不好经常会出错,所以就GOOGLE了一下,总算是弄清楚了。。。stdafx的英文全称为:Standard Application Framework Extensions(标准应用程...转载 2018-07-25 17:27:00 · 157 阅读 · 0 评论 -
c/c++ -nan(ind) NAN
nan -- 表示 出错,“不是一个数” not a number 的缩写。 按 IEEE 754 国际标准,当运算中出现无效数据时,给出 NaN. 许多情况会出现,例如 0 除 0,负数开平方,...nan 是 "not a number" 的缩写, 即计算结果 不是个 数。例如: 32 位 数 实际指数 128 ,数符 1 或 0,指数域 二进制 1111 1111。尾...原创 2018-07-24 17:09:50 · 37669 阅读 · 0 评论 -
vector clear() 方法 内存释放问题
自己查到的三处说法的对比:一、转自知道的答案:https://zhidao.baidu.com/question/323662520.html?qq-pf-to=pcqq.c2c#vector,clear()并不真正释放内存(这是为优化效率所做的事),clear实际所做的是为vector中所保存的所有对象调用析构函数(如果有的话),然后初始化size这些东西,让觉得把所有的对象清除了。 真正释放...原创 2018-07-12 16:45:51 · 16491 阅读 · 0 评论 -
#pragma once与#ifndef两种防止头文件二次编译的区别
转自:https://blog.csdn.net/zlhy_/article/details/8192580在最开始接触到C语言的时候,看到很多大牛们写的代码里面就有#ifndef #define #endif 这三条语句,当时不明白什么意思,慢慢的后来自己也开始用了,也知道了他们合起来使用时为了防止头文件被二次编译,因为我们曾经写代码的过程中一定遇到过<.......重复定义或是重复包含...转载 2018-07-12 09:19:41 · 164 阅读 · 0 评论