C++
文章平均质量分 63
大强zq
博观而约取,厚积而薄发
展开
-
C++错误:不允许使用不完整的类型
写了下面这个代码,结果在ifstream处提示“不允许使用不完整的类型” string from,to; cin>>from>>to; ifstream is(from.c_str()); istream_iterator ii(is); istream_iterator eos; vector b(ii,eos);原创 2015-07-28 20:36:16 · 79255 阅读 · 7 评论 -
C++ error LNK2038: RuntimeLibrary 不匹配的解决
在工程上右键-》属性-》c/c++-》代码生成-》运行库改成(release为MT,debug为MTD)即可解决:error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”原创 2015-08-06 16:29:52 · 1355 阅读 · 0 评论 -
C++编译错误:“max”宏的实参不足
报错:1>e:\hbj\test3\test0915\test10102\third_party\numerics\safe_conversions_impl.h(154): warningC4003: “max”宏的实参不足...1>e:\hbj\test3\test0915\test10102\third_party\numerics\safe_conversions_impl.h原创 2015-08-06 16:08:32 · 2953 阅读 · 0 评论 -
C++:static_cast
static_cast一般用来将枚举类型转换成整型,或者整型转换成浮点型。也可以用来将指向父类的指针转换成指向子类的指针。做这些转换前,你必须确定要转换的数据确实是目标类型的数据,因为static_cast不做运行时的类型检查以保证转换的安全性。也因此,static_cast不如dynamic_cast安全。对含有二义性的指针,dynamic_cast会转换失败,而static_cast却直接且粗原创 2015-08-04 15:45:32 · 646 阅读 · 0 评论 -
C++:vector利用swap()函数进行内存释放源码
vector与deque不同,其内存占用空间只会增长,不会减小。比如你首先分配了10,000个字节,然后erase掉后面9,999个,则虽然有效元素只有一个,但是内存占用仍为10,000个。所有空间在vector析构时回收。1、释放内存: empty()是用来检测容器是否为空的,clear()可以清空所有元素。但是即使clear(),所占用的内存空间依然如故。如果你需要空间动态缩小转载 2015-08-04 14:16:05 · 909 阅读 · 0 评论 -
在C、C++中调用Matlab
Matlab是美国MathWorks公司的产品,是一种以矩阵为基本编程单位的高效数值计算语言。Matlab集科学计算、图像处理、声音处理于一体,为用户提供了丰富的Windows图形界面设计方法,使用户能够在利用其强大数值计算功能的同时设计出友好的图形界面 。Matlab已经被证明是在应用数学、物理、工程学和其它涉及复杂数值计算等应用领域中解决问题的优秀工具。Matlab能够在Win95/98、转载 2015-08-15 09:26:24 · 894 阅读 · 0 评论 -
二维向量:vector<vector<int>>
又学一招!二维向量vector>在VC下的使用技巧。随着对c++学习的逐步加深, 发现STL确实是个好咚咚。vector是我用到的第一个STL容器,它一直吸引我学习和使用STL。但当我用到二维的vector时(比如 vector>),却发现似乎不能用。我用的VC6就是不认它,竟报“error C2146: syntax error : missing ',' before identifi原创 2015-08-01 13:43:41 · 2651 阅读 · 1 评论 -
VC:CString.Format()函数详解
在MFC程序中,使用CString来处理字符串是一个很不错的选择。CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串。CString的Format方法给我们进行字符串的转换带来了很大的方便,比如常见的int、float和double这些数字类型转换为CString字符串只需一行代码就可以实现。 先看看Format用于转换的格式字符: %c转载 2015-07-31 16:32:19 · 19178 阅读 · 0 评论 -
cereal:C++实现的开源序列化库
闲来无事发现了一个基于C++实现的序列化工具,相比于其他(比如Boost serialization或Google protobuf,恰巧都用过,以后再介绍),使用简单,感觉不错,下面做个摸索。cereal介绍cereal是一个开源的(BSD License)、轻量级的、支持C++11特性的、仅仅包含头文件实现的、跨平台的C++序列化库。它可以将任意的数据类型序列化成不同的表现形式,比如二转载 2015-07-29 13:49:00 · 1700 阅读 · 0 评论 -
Cmake使用教程
CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。CMake自动生成的Makefile不仅可以通过make命令构建项目生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test,或者c转载 2015-08-09 19:52:55 · 675 阅读 · 0 评论 -
C++: Vector详解
Vector(向量容器)是一个线性顺序结构。相当于数组,但其大小可以不预先指定,并且自动扩展。它可以像数组一样被操作,由于它的特性我们完全可以将vector 看作动态数组。在创建一个vector 后,它会自动在内存中分配一块连续的内存空间进行数据存储,初始的空间大小可以预先指定也可以由vector 默认指定,这个大小即capacity ()函数的返回值。当存储的数据超过分配的空间时vector原创 2015-08-09 15:57:35 · 626 阅读 · 0 评论 -
开发必备:Visual Studio 2015正式版下载
7月21日凌晨消息,面向大众用户的Visual Studio 2015集成开发工具正式版免费试用版已经推出。本文帮大家汇总一下简体中文社区版、专业版以及企业版在线安装版以及ISO离线安装镜像下载地址。Visual Studio Community 2015简体中文版(社区版,针对个人免费):在线安装 || ISO镜像镜像SHA1:1044F9F4E0EA1304AF原创 2015-07-28 10:11:02 · 760 阅读 · 0 评论 -
CMake 使用方法
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。CMake 使用方法CMake的所有的语句都写在一个叫:CMakeLists.txt 的文件中。当CMakeLists.txt文件确定后,可以用ccmake命令对相关 的原创 2015-09-19 18:57:25 · 499 阅读 · 0 评论