c++学习笔记
Alexon Xu
working、thinking、learning、sharing
展开
-
C++友元
友元分为友元类和友元函数。有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数;还可以把一个类作为另一个类的友元,这叫友元类。原创 2017-06-16 10:53:05 · 400 阅读 · 1 评论 -
关于C++的vector用法的总结
标准库类型的vector表示对象的集合,其中所有的对象都有相同的类型;集合中每一个对象都有一个与其对应的索引,索引用于访问对象。使用时必须包含:#include<vector>using std::vector;1、定义和初始化vector对象vector<string> svec;//默认初始化,svec不包含任何元素//事实上,最常见的方式是先定义一...原创 2018-05-24 15:24:47 · 17650 阅读 · 1 评论 -
关于C++的string用法总结
标准库类型string表示可变长的字符序列,使用string必须包含string头文件。#include<string>using namespace string;1、定义和初始化string s;//空字符串sstring s1=s;//s1是s的副本string s2="Hello CSDN Blog";//s2是字符串常量的副本string s3(1...原创 2018-05-24 10:54:48 · 367 阅读 · 1 评论 -
C++模板实现队列(1)
队列是一种先进先出(FIFO)的数据结构,常见的队列有链式队列和循环队列,链式队列结构简单,比较容易实现,但是效率不如循环队列;这里同时使用C++模板编程来实现这两种队列。 首先是链式队列,这里的链式队列采用双链表的结构,一头一尾分别使用一个指针。如下图所示: 之所以采用双链表结构是因为,这样做元素出队的时候比较好实现,直接根据head->prev就可以找到它的前驱节点,然后删掉原来...原创 2018-05-28 15:39:43 · 1639 阅读 · 1 评论 -
C++模板实现栈
尽管C++的STL库里面有Stack类,但是本着学习的目的,在参考他人成果的基础上,我决定自己实现一次。这个实现采用的是”链表+动态内存+模板”的方式实现。众所周知,栈是一种后进先出的数据结构,即先入栈的元素最后出栈,最后入栈的元素最先出栈。栈常常使用在计算机的变量存储中。 首先定义元素节点的数据结构:template<typename T>struct stackNode...原创 2018-05-26 10:50:03 · 2984 阅读 · 0 评论 -
istringstream用法
istringstream原创 2017-08-12 22:33:17 · 1178 阅读 · 0 评论 -
stringstream用法
注意重复使用同一个stringstream对象时要 先继续清空,而清空很容易想到是clear方法,而在stringstream中这个方法实际上是清空stringstream的状态(比如出错等),真 正清空内容需要使用.str(“”)方法。stringstream是个好东西,网上有不少文章,讨论如何用它实现各种数据类型的转换(比如把double或int转换为string类型)。删除从pos开始的n个字符,比如erase(0,1)就是删除第一个字符。转载 2017-08-12 14:25:29 · 538 阅读 · 0 评论 -
使用输入输出流迭代器读取和写入文件
目标:使用istream_iterator读取一个文件的内容(为数字),使用ostream_iterator将奇数写入第一个文件中,每个值之后都跟一个空格;将偶数写入第二个文件中,每个值占一行。原创 2017-07-22 17:55:25 · 2125 阅读 · 0 评论 -
C++的const和IO类
const,IO类原创 2017-04-04 10:24:26 · 508 阅读 · 1 评论 -
string类
String类原创 2017-04-04 10:22:42 · 353 阅读 · 0 评论 -
代码重用,多重继承
代码重用 多重继承原创 2017-04-04 10:20:50 · 408 阅读 · 1 评论 -
类型转换,动态内存
C++的类型转换 动态内存原创 2017-04-04 10:17:28 · 475 阅读 · 0 评论 -
抽象和类,this,运算符重载
抽象和类 this运算符重载原创 2017-04-04 10:15:38 · 654 阅读 · 1 评论 -
默认参数,存储的连续性
默认参数,内存原创 2017-04-04 10:13:38 · 336 阅读 · 0 评论 -
new、引用
new、continue,引用等原创 2017-04-04 10:10:24 · 455 阅读 · 0 评论 -
函数模板与类模板
1、函数模板 2、类模板原创 2017-06-15 22:46:45 · 211 阅读 · 1 评论 -
C++异常浅析
C++异常是对程序运行过程中发生的异常情况的一种响应,异常提供了将控制权从程序的一部分传递到另一部分的途径。异常处理由3部分组成: 引发异常; 使用处理程序捕获异常; 使用try块。原创 2017-06-16 19:25:05 · 352 阅读 · 1 评论 -
C++模板实现队列(2)
循环队列中添加和删除元素时并不像链式队列那样使用动态内存分配,一般采用固定的队列长度,一次分配一片内存用于存储数据,等到队列使用完毕后释放掉即可。内存使用效率比链式队列高,也比较容易实现。队列的数据定义如下: unsigned int size;//存储总的队列大小,最多可以存储size-1个数据 int head;//记录队头的下标 int rear;//记录队尾的下标...原创 2018-05-29 16:40:21 · 1610 阅读 · 1 评论