随笔分类 -  C++/STL

摘要:位运算及其应用实例(1)摘要位运算是C/C++中的基本运算之一,即便是这样,它对大多数程序员来说是一个比较陌生的运算——大多数程序员很少使用位运算。本篇先简要介绍基本的位运算操作符及其用法(何时使用),然后介绍位运算符的几个典型应用:(1)三种不用临时变量交换两个整数的实例,并分析每个实例的优缺点(... 阅读全文
posted @ 2015-03-11 17:07 FREE小宝 阅读(543) 评论(0) 推荐(0)
摘要:getline读取整行文本”。书上给的程序如下:int main(){ string line: while(getline(cin,line)) cout<<line<<endl; return 0;} 阅读全文
posted @ 2015-02-13 10:32 FREE小宝 阅读(186) 评论(0) 推荐(0)
摘要:freopen以前经常使用,比较方便,可以当作模板,在中间替换为自己的代码即可使用。?1234567891011121314#include // 实际使用中发现freopen也包含在iostream.h中,C++代码#include 即可。 int main() { freopen("sampl... 阅读全文
posted @ 2015-01-21 10:30 FREE小宝 阅读(988) 评论(0) 推荐(1)
摘要:作为一个C的新手(虽然学的第一门语言就是C,可是用C实际开发项目却是最近的事情),对使用C过程中遇到的各类问题、疑惑、知识漏洞进行弥补无疑是非常有必要的,于是决定将每次遇到的知识漏洞写到博客上。今天在写代码的过程中对一个函数进行了重构,函数的用处是将一块内存中的内容打印成16进制表示的字符串;很悲哀... 阅读全文
posted @ 2014-11-28 15:47 FREE小宝 阅读(2041) 评论(0) 推荐(0)
摘要:STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector 、deque);另一类是以不连续的节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时,需要注意一些问题。 在使用 list、set 或 map遍历删除某些元素时可以这样使用:正确使用方... 阅读全文
posted @ 2014-05-14 13:47 FREE小宝 阅读(1994) 评论(0) 推荐(0)
摘要:STL--map用法map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力由于这个特性它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织map内部自建一颗红黑树(一种非... 阅读全文
posted @ 2014-05-09 12:47 FREE小宝 阅读(307) 评论(0) 推荐(0)
摘要:例:struct a{int a;char b[10];double c;};在程序中只知道一个结构 a 的指针, 有没有函数能通过结构的名字 和 指向结构的指针 随次得到 结构中的变量类型 和 变量的值.C/C++ 里办不到。这是只有动态语言才有的特性。结构是存在于原程序中的为了方便人看和想的东西。编译器知道,但编译后就不存在了(结构中的变量和一般变量一样),名字也不存在了。保留DEBUG INFO除外如果结构体已经是1个byte对齐的紧凑模式的话,那么直接用memcpy即可转换为二进制流。就算是默认对齐的也可以直接memcpy结构体本质上就是一段内存也就是lz要的所谓二进制流,可以转换成c 阅读全文
posted @ 2014-03-06 10:45 FREE小宝 阅读(2771) 评论(0) 推荐(0)
摘要:在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。 一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效率。C语言提供了位运算的功能,这使得C语言也能像汇编语言一样用来编写系统程序。 位运算符C语言提供了六种位运算符: &按位与 |按位或 ^按位异或 ~取反 >右移 1.按位与运算按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。参与运算的数以补码方式出现。 例如:9&5可写算式如 阅读全文
posted @ 2014-02-18 13:21 FREE小宝 阅读(445) 评论(0) 推荐(0)
摘要:Explicit Constructors(显式构造函数)收藏按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p );// 用C风格的字符串p作为初始化值//…}String s1 = “hello”;//OK 隐式转换,等价于String s1 = String(“hello”);但是有的时候可能会不需要这种隐式转换,如下:class String { String ( int n );//本意是预先分配n个字节给字符串String ( const cha 阅读全文
posted @ 2014-01-17 13:55 FREE小宝 阅读(126) 评论(0) 推荐(0)
摘要:大一学习C语言的时候,书上就写着a = a + b与 a += b等价,但是提倡用后者。在CSDN上也看到一个关于a+=b和a=a+b的区别的帖子,大概内容如下:------------------------------------------------------------------------------------------------------------------------------------------楼主:为什么要强调使用 a+=b 而不建议使用a=a+b我想在编译上应该是一样的啊add a b就算是间接寻址也应该一样啊 以下是各位高人的回答:1 楼mLee7 阅读全文
posted @ 2013-12-05 10:59 FREE小宝 阅读(1175) 评论(0) 推荐(0)