![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++学习笔记
文章平均质量分 67
wangxu_zju_2010
这个作者很懒,什么都没留下…
展开
-
变量初始化
方法:C++支持两种初始化变量:复制初始化和直接初始化。复制初始化语法用等号,直接初始化是把初始化式放在括号中:int ival(1024); //直接初始化int ival = 1024; //复制初始化规则:内置类型变量初始化:在函数体外定义的变量都初始化成0,在函数体内定义的变量不进行自动初始化。类类型变量初始化:如原创 2012-05-15 13:22:20 · 535 阅读 · 0 评论 -
const函数
classPoint{ public: intGetX()const; intGetY()const; voidSetPt (int,int); voidOffsetPt (int,int); private: intxVal, yVal;};1.一些成员函数改变对象,一些成员函数不改变对象. 2.为了使成员函数的意义更加清楚,我们可在不改变对象转载 2012-05-17 15:28:09 · 557 阅读 · 0 评论 -
关联容器
关联容器:利用键,STL的关联容器能直接保存和提取键。4个关联容器分别为:multiset,set,multimap,map。每个关联容器都按有序的方式维护者它的键。对关联容器的迭代遍历是根据这个容器的排序顺序进行的。multiset和set提供了对值的集合的操作,其中的值都是键,每个键并不存在一个关联值。multimap和map提供了与键相关联的值的操作(这些值有转载 2012-05-21 21:37:06 · 1575 阅读 · 0 评论 -
标准模板库STL介绍
1. STL介绍标准模板库STL是当今每个从事C++编程的人需要掌握的技术,所有很有必要总结下本文将介绍STL并探讨它的三个主要概念:容器、迭代器、算法。STL的最大特点就是:数据结构和算法的分离,非面向对象本质。访问对象是通过象指针一样的迭代器实现的;容器是象链表,矢量之类的数据结构,并按模板方式提供;算法是函数模板,用于操作容器中的数据。由于ST转载 2012-05-21 20:24:31 · 665 阅读 · 0 评论 -
序列容器(deque)
STL学习之四——deque序列容器Deque是“双端队列”的简写,像vector一样,deque类的实现提供了读取和修改它的元素的高效索引访问(使用下标)。像list一样,deque类的实现提供了在前端和后端进行高效插入和删除的操作。deque类对随机访问迭代器提供了支持,因此deque能够用于所有的STL算法。Deque最常见的用途之一是维护一个先入先出的队列。转载 2012-05-21 21:15:32 · 626 阅读 · 0 评论 -
C++泛型算法
本文主要讨论C++标准库中的泛型算法(generic algorithm)。泛型算法是使用容器的强有力的辅助工具。 如果文中有错误或遗漏之处,敬请指出,谢谢! 标准库为容器类型定义的操作很少,并没有为每个容器实现更多的操作。因为这部分操作可以抽象出来为所有的容器工作,那就是泛型算法。所谓“泛型”是指这些算法可以应用于多种容器类型上,而容器内的元素类型也可以多样化。标转载 2012-05-22 15:07:34 · 11617 阅读 · 1 评论 -
序列容器(list)
list序列容器List序列容器提供了在容器的任何位置执行高效的插入和删除功能。类模板list是用双链表实现的。也就是说,链表中每个节点都包含指向链表中前一个节点的一个指针和指向链表中后一个节点的指针。这就使得类模板list支持双向迭代器,允许以向前和向后的方式遍历容器。下面以demo中的例子来说明list的用法。[cpp] view plaincopy转载 2012-05-21 20:43:39 · 616 阅读 · 0 评论 -
序列容器(vector)
STL学习之二 序列容器(vector)一、C++标准模板库提供了三种序列容器:vector、list、deque。类模板vector和deque都以数组为基础,类模板list实现了链表的数据结构。STL中最流行的是类模板vector,它是一种更健壮的数据类型,相当于动态数组,能动态得改变数组的大小。Vector和C和C++的原始数组不同。为什么不同呢?因为vector能够转载 2012-05-21 20:34:51 · 833 阅读 · 1 评论 -
文件输入输出的模式
文件模式:in打开文件做读操作out 打开文件做写操作app在每次写之前找到文件尾ate打开文件后立即将文件定位在文件尾trunc打开文件时清空已存在的文件流binary以二进制模式进行IO操作文件模式组合:out 打开文件做写操作,删除文件中已有原创 2012-05-18 15:03:58 · 663 阅读 · 0 评论 -
指向函数的指针
函数指针是指指向函数而非指向对象的指针。如下:bool (*pf) ( const string&, const string & );这条语句将pf声明为指向函数的指针,它让所指向的函数带有两个const string& 类型的形参和bool类型的返回值。注意*pf两侧的括号不能少。1.用typdef简化函数指针的定义typedef bool (*cmpFcn) ( co原创 2012-05-18 14:09:47 · 422 阅读 · 0 评论 -
C++异常处理
引言异常,让一个函数可以在发现自己无法处理的错误时抛出一个异常,希望它的调用者可以直接或者间接处理这个问题。而传统错误处理技术,检查到一个局部无法处理的问题时:1.终止程序(例如atol,atoi,输入NULL,会产生段错误,导致程序异常退出,如果没有core文件,找问题的人一定会发疯)2.返回一个表示错误的值(很多系统函数都是这样,例如malloc,内存不足,分配失败,返转载 2012-05-17 14:50:55 · 648 阅读 · 0 评论 -
指针与引用的区别
虽然引用和指针都可以间接的访问另一个值,但它们之间有两个重要的区别。第一个区别:引用总是指向固定的某一个对象,所以定义引用时没有初始化式错误的。第二个重要的区别是赋值行为的差异:给引用赋值修改的是该引用所关联的对象的值,而并不是使引用于另一个对象关联。引用一但初始化,就始终指向同一个特定对象。考虑下面两个例子:int ival 1= 1024, ival2 = 2048;i原创 2012-05-16 16:06:20 · 303 阅读 · 0 评论 -
string 类型
string对象初始化:string s1; 默认构造函数,s1为空串string s2(s1); 将s2初始化为s1的一个副本string s3("value"); 将s3初始化为一个字符串字面值的副本string s4(n, 'c'); 将s4初始化为字符‘c’的n个副本string对象的读写:使用标准输入输出操作符读写string对象使用getline函数原创 2012-05-15 14:14:58 · 366 阅读 · 0 评论 -
bitset类型
bitset对象的定义和初始化:bitset b; b有n位,每位都为0bitset b(u); b是unsigned long型u的一个副本bitset b(s); b是string对象s中含有位串的副本bitset b(s, pos, n ); b是s中从位置pos开始的n个位的副本bitset对象上的操作:b.any( ); b中是否存在值为1的二进制位?原创 2012-05-15 14:44:13 · 332 阅读 · 0 评论 -
const 限定符
const将一个对象转换为一个常量,即这个常量不能被修改。const 对象默认为文件的局部变量,如果让全局const变量可以使别的文件调用,必须加上const限定符//file1.ccextern const int i = 0;//file2.ccextern const int i;while( !i ){};*非const变量默认为extern, 要使原创 2012-05-15 13:45:38 · 316 阅读 · 0 评论 -
声明和定义
C++区分了声明和定义:定义:用于为变量分配存储空间,还可以为变量指定初始值。在一个程序中,变量有且仅有一个定义声明:用于向程序表明变量的类型和名字。定义也是声明:当定义变量的时候我们声明了类型和名字。可以通过关键字extern声明变量:extern int i; //声明变量int i; //定义变量这时extern是声明而不是原创 2012-05-15 13:29:07 · 359 阅读 · 0 评论 -
C++ 类作用域
形参表和函数体处于类作用域中,函数返回类型不一定在类作用域中,如果函数在类定义体之外定义,则用于返回类型的名字在类作用域之外,否则在类作用域内。class Screen{public:typedef std::string::size_type size;//not need to specific the screen::inline size get_cursor() const;原创 2012-05-23 10:39:36 · 789 阅读 · 0 评论