目录操作

创建目录: int mkdir(const char* pathname,mode_t mode);pathname,路径;mode,目录访问权限;返回值:成功,返回0,失败,返回-1. 删除目录: int rmdir(const char* pathname);pathname:路径;返回...

2017-05-22 16:34:40

阅读数 140

评论数 0

文件属性

int stat(const char* path,struct stat *s);path文件路径+文件名,s保存文件信息结构体的地址。返回值,成功0,失败-1. struct stat { dev_t st_dev;//文件设备编号 ino_t st_ino;//节点 mode_t ...

2017-05-22 14:56:56

阅读数 170

评论数 0

文件的原子操作

文件的原子操作是指一个操作一旦启动,则无法能被破坏它的其它操作打断。 1.写文件原子操作 无论是两个打开,还是dup,同时操作一个文件都可能引起混乱,解决这个问题的方法是,可以通过O_APPEND解决这个问题.O_APPEND选项可以使得一个写操作正在进行时,另外一个对该文件的写操作会阻塞等待...

2017-05-22 14:36:15

阅读数 305

评论数 0

Linux的文件操作

在Linux系统中,打开的文件是用一个整数来表示的,表示打开文件的整数,称为文件描述符。 1.open/create int open(const char *pathname, int flags); int open(const char *pathname, int flags, mo...

2017-05-19 14:23:45

阅读数 150

评论数 0

函数对象适配器

#include #include #include #include #include #include #include using namespace std; //函数对象适配器bind1st,bind2nd struct MyPrint :public binary_f...

2017-05-18 23:30:30

阅读数 113

评论数 0

谓词

谓词是指普通函数或重载的operator()返回值是bool类型的函数对象(仿函数)。如果operator接受一个参数,那么叫做一元谓词,如果接受两个参数,那么叫做二元谓词。谓词可作为一个判断式。 struct GreaterThan8 { bool operator()(int v) {...

2017-05-18 20:57:01

阅读数 156

评论数 0

函数对象

重载函数调用操作符的类,其对象称为函数对象,它是行为类似函数的对象,也称作仿函数。 函数对象的特性: 1.函数对象是一个类,不是一个函数。 2.函数对象重载了()操作符,使得它可以像函数一样调用。 struct MyStruct { void operator()(int a) { ...

2017-05-18 20:01:29

阅读数 150

评论数 0

map/multimap容器

map容器的特性: 1.所有元素都会根据元素的键值自动排序。map的所有元素都是pair,同时拥有实值和键值,map不允许两个元素有相同的键值。 2.不能通过map的迭代器改变键值。因为键值关系搞map元素的排列规则,任意改变map键值,将会严重破坏map组织,修改元素的实值是可以的。 3....

2017-05-18 19:16:18

阅读数 201

评论数 0

set/multiset容器

set容器的特性: 1.所有元素都会根据元素的键值自动排序,set元素的键值又是实值,set不允许两个元素有相同的键值(实值); 2.不可以通过迭代器改变set元素的值。因为set元素值就是其键值,关系到set元素的排序规则。如果通过迭代器改变set元素值,会破坏set组织。set的itera...

2017-05-18 12:23:32

阅读数 170

评论数 0

二叉树遍历

定义:n个节点的有限集合,由一个根节点以及两棵互补相交的,分别为左子树和右子树的二叉树组成。 基本特征:每个节点最多有两个子树,左子树和右子树次序不能颠倒(有序树),深度为k的二叉树,至多有pow(2,k)个节点;对于任何一颗二叉树,若度为2的节点有n2个,则叶子数必定为n2+1,具有n个节点的...

2017-05-18 01:51:20

阅读数 149

评论数 0

list容器

1.list容器的概念 list容器是一个双向链表。相比于vector容器,list每次插入或者删除一个元素,就是配置或者释放一个元素的空间。因此,list对于空间的运用有绝对的精准,一点也不浪费。而且,对于任何元素的插入或移除,list永远是常熟时间。 2.list容器的迭代器 l...

2017-05-14 01:05:47

阅读数 143

评论数 0

queue容器

1.queue容器的基本概念 queue是一种先进先出的数据结构,它有两个出口,queue容器允许从一端新增元素,从另一端移除元素。queue没有迭代器。 2.queue常用API 2.1queue构造函数 queue que;默认构造 queue que(const queue...

2017-05-14 00:46:57

阅读数 109

评论数 0

stack容器

1.stack容器概念 stack容器是一种前进后出的数据结构,它只有一个出口。stack容器允许新增元素,移出元素,取得栈顶元素,但是,除了最顶端外,没有任何其它方法可以存取stack的其它元素,stack不允许遍历。 2.stack容器不提供迭代器 stack所有元素的进出都必须...

2017-05-13 15:45:26

阅读数 114

评论数 0

deque容器

1.deque是一种双向开口的连续线性空间,可以在头尾两端分别做元素的插入和删除操作。 2.deque容器实现原理 deque容器是由一段一段的定量的连续空间构成。一旦有必要在deque前段或者尾端增加新的空间,便配置一段连续定量的空间。串接在deque的头端或者尾端。deque的最大...

2017-05-12 16:36:11

阅读数 126

评论数 0

vector容器

1.vector容器示意图 2.vector的迭代器 vector支持随机存取,所以vector提供的是随机访问迭代器。 3.vector的数据结构 vector采用连续线性空间实现,它用两个迭代器_Myfirst和_Mylast分别指向配置得来的连续空间中目前已被使用的范围,并以...

2017-05-12 15:03:10

阅读数 177

评论数 0

string容器

1.string与c风格字符串的对比: --char*是一个指针,string是一个类。string封装了char*,管理这个字符串,是一个char*性的容器。 --string封装了很多成员方法,诸如:find,copy,delete,replace,insert。 --string管理c...

2017-05-11 18:21:11

阅读数 166

评论数 0

STL的容器、算法与迭代器

1.容器 容器分为序列式容器,关联式容器。 序列式容器就是容器元素在容器中的位置是由元素进入容器的时间和地点类决定。vector,deque,list,stack,queue都是序列式容器。 关联式容器是指容器有既定的规则,元素在容器中的位置由容器的规则决定。set、multiset、map...

2017-05-10 11:31:21

阅读数 141

评论数 0

STL的优点

STL的优点: 1.实现数据结构和算法的分离,使得STL非常通用。 2.STL具有高可重用性,高性能,高移植性,夸平台的优点。 --高可重用性:STL中几乎所有的代码都采用了模板类和模板函数的方式实现,代码重用性高。 --高性能:如map,采用红黑数的变体实现,效率高。 --高移植性:S...

2017-05-10 11:23:25

阅读数 495

评论数 0

STL的六大组件

STL提供了六大组件,彼此之间可以组合套用,这六大组件分别是:容器、算法、迭代器、仿函数、适配器、空间适配器。 容器:各种数据结构(vector,list,deque,set,map等),用来存放数据,从实现角度来看,STL容器是一种class template。 算法:常用的各种算法,如so...

2017-05-10 11:11:48

阅读数 179

评论数 0

C++文件读写

打开文件是指在文件读写之前做必要的准备工作,包括: 1.位文件流对象和指定的磁盘文件建立关联,以便使文件流流向指定的磁盘文件。2.指定文件的工作方式。 在C++中,代开文件可以用两种方法实现 1.调用文件流的成员函数 2.在定义文件流对象时指定参数 文件输入输出方式设置 ...

2017-05-09 22:28:20

阅读数 183

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭