
c++
文章平均质量分 54
PinKrystal
哈哈哈
展开
-
关于 explicit 的一些学习
一直不太明白这个关键字到底是干什么的。后来在晚上搜索了几篇文档看了一下。首先是这篇:《 C++中的explicit关键字》但是还是感觉不太懂,所以自己动手敲了几段代码。#includeusing namespace std;class a{ public: char num; char data; a(char n,char d原创 2016-01-22 16:07:25 · 379 阅读 · 0 评论 -
【C/C++语言入门篇】-- 位运算
回顾之前的篇幅,C语言的主体部分基本已经介绍完了。之所以没有介绍C++的相关特性是因为在之前的文章中C和C++在这些方面都有共性,所以在面向对象之前。我们先把这些共性给介绍完。也就是说在介绍面向对象之前,所有的文章都是CC++中都能使用的。从这点上来看,现在正极力奋斗于C++战线上的初学者还是很有用处的。 本篇继续沿着这条路线,到本篇为止包括本篇都还不会急于去介绍C++的面向对象的转载 2016-03-28 11:49:23 · 352 阅读 · 0 评论 -
vector清空
vector int> vecInt; for (int i=0;i { vecInt.push_back(i); } int j= vecInt.capacity(); //j=512 i = vecInt.size(); //i=500 第一种办法使用 c转载 2016-04-14 23:00:49 · 864 阅读 · 0 评论 -
c++ string主要的用法
toupper,tolower地球人都知道 C++ 的 string 没有 toupper ,好在这不是个大问题,因为我们有 STL 算法:string s("heLLo");transform(s.begin(), s.end(), s.begin(), ::toupper);cout transform(s.begin(), s.end(), s.begin(), ::转载 2016-04-28 20:41:37 · 492 阅读 · 0 评论 -
boost::string
boost::algorithm提供了很多字符串算法,包括: 大小写转换; 去除无效字符; 谓词; 查找; 删除/替换; 切割; 连接; 我们用写例子的方式来了解boost::algorithm能够为我们做些什么。boost::algorithm学习#include using namespace std;using namespace boost; 一:大小写转换1转载 2016-05-13 16:11:38 · 1841 阅读 · 0 评论 -
int main(int argc,char* argv[])详解
argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 命令行后面跟的用户输入的参数,比如: int main(int argc, char* argv[]) { int i; for (i = 0; i i++) cout转载 2016-05-26 14:39:41 · 508 阅读 · 0 评论 -
11个强大的Visual Studio调试小技巧
伯乐在线注:我们在@程序员的那些事 微博上推荐了英文原文,感谢@halftone_被禁用了的热心翻译。简介调试是软件开发周期中很重要的一部分。它具有挑战性,同时也很让人疑惑和烦恼。总的来说,对于稍大一点的程序,调试是不可避免的。最近几年,调试工具的发展让很多调试任务变的越来越简单和省时。这篇文章总结了可能节省你大量时间的11个Visual studio的调试技巧和方法。转载 2016-05-27 16:40:51 · 4795 阅读 · 0 评论 -
C++网络爬虫的实现——WinSock编程
写了一个网络爬虫,可以抓取网上的图片。需要给定初始网站即可。在vs2010中编译通过。需要使用多字节字符集进行编译,vs2010默认的是Unicode字符集。编译后,运行即可,有惊喜哦!!!爬虫原理从最开始的网址开始,在其中找到链接到其他网页的超链接,放到一个网页队列里面保存起来,找到该网页的所有图片,下载下来。转载 2016-05-04 20:24:16 · 476 阅读 · 0 评论 -
标准C++中的string类的用法总结
相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法。其实,可能很多人很可能会忽略掉标准C++中string类的使用。标准C++中提供的str转载 2016-05-04 21:30:06 · 528 阅读 · 0 评论 -
Timespec :struct type Error c2011
在C++多线程代码的时候的错误,google之,然后找到了解决办法。 原始答案如下。 Timespec :struct type Error c2011 threads的-win32的(我假设你正在使用),可在内部包括time.h中(time.h中通常也被其他的库/头文件包含) -和time.h中已经声明了的timespec(也,它兼容的方式这样做与pthreads的) -但与pthreads翻译 2016-05-28 20:14:13 · 6426 阅读 · 0 评论 -
C++ 类的静态成员详细讲解
在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即::。 在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静转载 2016-05-06 10:28:31 · 241 阅读 · 0 评论 -
C++连接mysql数据库的两种方法
现在正做一个接口,通过不同的连接字符串操作不同的数据库。要用到mysql数据库,以前没用过这个数据库,用access和sql server比较多。通过网上的一些资料和自己的摸索,大致清楚了C++连接mysql的方法。可以通过2种方法实现。第一种方法是利用ADO连接,第二种方法是利用mysql自己的api函数进行连接。第一种方法可以实现我当前的需求,通过连接不同的字符串来连接转载 2016-05-06 10:31:56 · 14703 阅读 · 2 评论 -
c++ 链接mysql:error LNK2019: 无法解析的外部符号
使用VS2012编译项目报错如下:error LNK2019: 无法解析的外部符号 _mysql_real_connect@32,该符号在函数 _main 中被引用error LNK2019: 无法解析的外部符号 _mysql_query@8,该符号在函数 _main 中被引用error LNK2019: 无法解析的外部符号 _mysql_init@4,该符号在函数 _main 中被引原创 2016-05-06 14:59:42 · 7535 阅读 · 0 评论 -
cdecl、stdcall、fastcall函数调用约定区别
论函数调用约定 在C语言中,假设我们有这样的一个函数: int function(int a,int b) 调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算机没有办法知道一个函数调用需要多少个、什么样的参数,也没有硬件可以保转载 2016-05-30 19:10:54 · 465 阅读 · 0 评论 -
如何编译&使用boost库?
1. 编译1.1. 下载地址:http://www.boost.org/1.2. VS2005编译boost_1_55_01.2.1. 使用vs2005的命令行执行:...\boost_1_55_0\bootstrap.bat1.2.2. 编译动态库bjam install stage --toolset=msvc-8.0 --stagedir="C:\Boost\boost_转载 2016-05-06 20:23:12 · 542 阅读 · 0 评论 -
布隆算法
Bloom filter简介Bloom filter 是由 Howard Bloom 在 1970 年提出的二进制向量数据结构,它具有很好的空间和时间效率,被用来检测一个元素是不是集合中的一个成员。如果检测结果为是,该元素不一定在集合中;但如果检测结果为否,该元素一定不在集合中。因此Bloom filter具有100%的召回率。这样每个检测请求返回有“在集合内(可能错误)”和“不在集合内(转载 2016-05-17 22:43:35 · 1165 阅读 · 0 评论 -
count_if 和count
count_if :返回区间中满足指定条件的元素数目。template typename iterator_traits::difference_type count_if( InputIterator _First, InputIterator _Last, Predicate _Pred );Pa转载 2016-05-07 22:14:57 · 524 阅读 · 0 评论 -
STL——空间配置器(SGI-STL)
一、 空间配置器标准接口参见《STL源码剖析》第二章-2.1。文件。二、具备次配置力的SGI空间配置器1. SGI STL的配置器与众不同,也与标准规范不同,其名称是alloc而非allocator,而且不接受任何参数(虽然SGI也定义有一个符合部分标准、名为sllocator的配置器,但SGI自己从未用过它,也不建议使用,主要因为效率不佳,它只是基层内存配置/释放行为(也转载 2016-03-26 22:09:24 · 463 阅读 · 0 评论 -
STL 容器特点简单总结
STL的容器可以分为以下几个大类: 一:序列容器, 有vector, list, deque, string.二 : 关联容器, 有set, multiset, map, mulmap, hash_set, hash_map, hash_multiset, hash_multimap三: 其他的杂项: stack, queue, valarray, bitset转载 2016-03-12 16:09:45 · 331 阅读 · 0 评论 -
MFC——ComBox用法大全
Combo Box (组合框)控件很简单,可以节省空间。从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的。用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本。下面的例子简要说明如何利用 MFC CComboBox Class来操作字符串列表。 1、定义控件对应变量假定已经创建了一个Dialog,并且从控件工具箱将 Combo Box 控件转载 2016-04-04 21:59:22 · 1238 阅读 · 0 评论 -
C++智能指针简单剖析
原文在这里:C++智能指针简单剖析导读最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解我以前的多处困惑。C++面试过程中,很多面试官都喜欢问智能指针相关的问题,比如你知道哪些智能指针?shared_ptr的设计原理是什么?如果让你自己设计一个智能指针,你如何完成?等等……。而且在看开源的C++项目时,也能随处看到转载 2016-01-22 16:17:14 · 274 阅读 · 0 评论 -
内联函数学习
内联函数是指用inline关键字修饰的函数。在类内定义的函数被默认成内联函数。 定义:内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但是能否形成内联函数,需要看编译器对该函数定义的具体处理。 动机:内联扩展转载 2016-01-22 21:39:33 · 416 阅读 · 0 评论 -
C++ 引用新发现
今天在《C++ PRIMER PLUS》上学习模板的时候看到了这样一段代码(简化版): #include#include#include#includeusing namespace std;template class Pair{private: T1 a; T2 b;public: T1 &FIRST(); T2 &SEC原创 2016-01-15 11:30:26 · 385 阅读 · 0 评论 -
C++ inline 函数
(一)inline函数(摘自C++ Primer的第三版)在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联。 inline int min(int first, int secend) {/****/}; inline 函数对编译器而言必须是可见的,以便它能够在调用点内展开该函数。与非inline函数不同的是,inline函原创 2016-03-16 10:59:20 · 325 阅读 · 0 评论 -
static 和 const
static 是c++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因、作用谈起,全面分析static 修饰符的实质。 static 的两大作用:一、控制存储方式: static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间。 1、引出原因:函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈转载 2016-03-05 21:28:22 · 308 阅读 · 0 评论 -
C++中变量的作用域与生命周期
今天在论坛上看到有朋友发帖问道:既然静态全局变量与全局变量都存储在全局数据区,为什么作用域却不一样呢?也许答案非常简单:C++就是这么规定的,静态全局变量与全局变量的唯一区别就是作用域不同。 对一个C++变量来说,有两个属性非常重要:作用域和生命周期,它们从两个不同的维度描述了一个变量--时间和空间。顾名思义,作用域就是一个变量可以被引用的范围,如:全局作用域、文件作用域、局部作用转载 2016-03-06 00:27:39 · 335 阅读 · 0 评论 -
详解C/C++预处理器
C/C++编译系统编译程序的过程为预处理、编译、链接。预处理器是在程序源文件被编译之前根据预处理指令对程序源文件进行处理的程序。预处理器指令以#号开头标识,末尾不包含分号。预处理命令不是C/C++语言本身的组成部分,不能直接对它们进行编译和链接。C/C++语言的一个重要功能是可以使用预处理指令和具有预处理的功能。C/C++提供的预处理功能主要有文件包含、宏替换、条件编译等。 1转载 2016-03-06 16:26:22 · 1195 阅读 · 0 评论 -
C++ union enum 探究
这两个关键字并不怎么常用,但是看C++primer plus 面向对象编程部分的时候总是能看到类中有用enum定义的变量。所以想弄清楚这两个关键词到底有什么用。首先是UNION,MSDN上的解释A union is a user-defined type in which all members share the same memory location. This means th原创 2016-03-07 11:28:16 · 391 阅读 · 0 评论 -
C++类型转换机制
类型转换机制:可以分为隐式类型转换和显示类型转换,显示类型转换也称为强制类型转换(cast),有四种名字命名的强制类型转换操作符:static_cast、dynamic_cast、const_cast、reinterpret_cast。隐式的类型转换比较常见,在混合的类型表达式中经常发生。最简单的为整型提升,对于所有比int小的整型,包括char、signed char、unsigned转载 2016-03-18 20:35:42 · 350 阅读 · 0 评论 -
C/C++中volatile关键字详解
1. 为什么用volatile? C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier。这是 BS 在 "The C++ Programming Language" 对 volatile 修饰词的说明:A volatile specifier is a hint to a compiler that转载 2016-03-18 20:37:59 · 255 阅读 · 0 评论 -
解释型语言和编译型语言的区别
编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。C/C++ 等都是编译型语言,而Java,C#等都是解释型语言。虽然Java程序在运行之前也有一个编译过程,但是并不是将程序编译成机器语言,而是将它编译成字节码(可以理解为一个中间转载 2016-03-07 21:34:55 · 666 阅读 · 0 评论 -
c++动态联编与静态联编
摘要】:本文阐述了静态联编和动态联编的概念和区别,通过具体实例分析了实现动态联编的条件,指出了虚函数是实现动态联编的基础。【关键词】:静态联编;动态联编;虚函数在C++中,联编是指一个计算机程序的不同部分彼此关联的过程。按照联编所进行的阶段不同,可分为两种不同的联编方法:静态联编和动态联编。 1. 静态联编静态联编是指联编工作在编译阶段完成的,这种转载 2016-03-07 21:50:16 · 361 阅读 · 0 评论 -
error C2660: “MessageBoxA” : 函数不接受 1 个参数
MessageBox函数的区别:一个参数的MessageBox是MFC封装Win SDK的,只能在对话框里面进行调用;例如:MessageBox( "pGRAY 空间申请失败");而四个参数的MessageBox函数,是Win SDK的,他有四个参数。 例如:MessageBox(NULL, "pGRAY 空间申请失败", "提示", MB_OK转载 2016-04-01 11:22:08 · 6509 阅读 · 0 评论 -
C++中多态性和重载
面向对象的三大特征:1.封装:保证对象自身数据的完整性、安全性2.继承:建立类之间的关系,实现代码复用、方便系统的扩展3.多态:相同的方法调用可实现不同的实现方式。多态是指两个或多个属于不同类的对象,对于同一个消息(方法调用)作出不同响应的方式。、、、、、、、、、实现多态的方式:函数重载;运算符重载;虚函数、、、、、、、、、C++有两转载 2016-03-10 19:37:22 · 2317 阅读 · 0 评论 -
如何正确使用C++多重继承
原创文章,转载请注明:转载自Soul Apogee本文链接地址:如何正确使用C++多重继承C++多重继承一直是一个让人搞不太清楚的一个问题,但是有时候为了实现多个接口,多重继承是基本不可避免,当然在Windows下我们有强大的COM来帮我们搞定这个事情,不过如果你想自己实现一套类似于COM的东西出来的时候,麻烦事情就来了。在COM里面,有两个很基础的,而且我们都会用到的转载 2016-03-10 20:00:07 · 485 阅读 · 0 评论 -
Ugly Number II(求第N个丑数)
先开始是超时了,运行了一下代码,的确很慢。但是苦于没有思路,所以就上网看了一下解题报告。觉得这个解题报告无论是代码还是思路都非常清晰。这个应该是微软的一道面试题,首先需要明白丑数的概念。1是一个特殊的丑数,其次只含有2,3,5质因数的数被定义为丑数。 关于解题的思路可以参考: http://www.geeksforgeeks.org/ugly-numbers/ 1到原创 2016-04-04 13:00:03 · 477 阅读 · 0 评论 -
字符串分割(C++)
经常碰到字符串分割的问题,这里总结下,也方便我以后使用。一、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。转载 2016-05-08 17:05:52 · 738 阅读 · 0 评论