摘要:C代码通过编译器编译成可执行代码,经历了四个阶段,依次为:预处理、编译、汇编、链接。 接下来详细讲解各个阶段 一、预处理 1、任务:进行宏定义展开、头文件展开、条件编译,不检查语法。 2、命令:gcc -E [源文件] -o [预处理文件] 3、案例:用gcc编译器预处理demo1.c代码,预处理后
阅读全文
摘要:back_inserter函数:配合copy函数,把[a, b)区间的数据插入到string对象的末尾,如果容量不够,动态扩容。 使用案例: 1、客户端与服务器通信场景:服务器向客户端发送数据,客户端接收数据。 接收数据的三种方法: (1)错误方法:把接收到的c风格字符串用string构造函数转成s
阅读全文
摘要:重载函数调用操作符的类,其对象称为函数对象(functio object),即它们是行为类似函数的对象,也叫仿函数(functor),其实就是重载“()”操作符,使得类对象可以像函数那样调用。 注意: 1、函数对象(仿函数)是一个类的实例化对象,不是一个函数。 2、函数对象(仿函数)重载了”() ”
阅读全文
摘要:STL中给出的算法,大部分定义在头文件algorithm里头,还有一些定义在numeric头文件里头,有时候为了绑定适配器还需要引入头文件functional。STL算法通常配合容器使用,它们之间通过迭代器建立联系。 一、常用的遍历算法 (1)for_each 1 #include <iostrea
阅读全文
摘要:set容器内的元素会被自动排序,set与map不同,set中的元素即是键值又是实值,set不允许两个元素有相同的键值。不能通过set的迭代器去修改set元素,原因是修改元素会破坏set组织。当对容器中的元素进行插入或者删除时,操作之前的所有迭代器在操作之后依然有效。 multiset特性及用法和se
阅读全文
摘要:list容器实质是一个双向链表,list不提供随机访问功能,当删除其中一个元素,指向其他元素的迭代器依然有效。对于任何位置的元素插入或移除,list永远是常数时间
阅读全文
摘要:queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口,queue容器允许从一端新增元素,从另一端移除元素,queue不提供遍历功能,也不提供迭代器。使用队列需要引入头文件#include<queue>
阅读全文
摘要:stack是一种先进后出(First In Last Out,FILO)的数据结构,使用栈需要引入头文件#include<stack>。stack不提供遍历功能,也不提供迭代器,它只有一个出口,形式如下图所示。
阅读全文
摘要:初始化 函数原型 功能 string() 创建一个空的字符串 string(const string& str) 使用一个string对象初始化另外 一个string对象 string(const char* s) 使用C风格字符串s初始化 string(int n, char c) 使用n个字符c初始化 赋值 函数原型 功能 string& operato...
阅读全文
摘要:案例背景:企业的信息系统一般都有成熟的框架,在框架内可以集成其他厂商的产品,但软件框架一般不发生变化。 案例需求:在企业信息系统框架中,集成其他厂商的socket通信产品和加密产品。 编程提示: 1、抽象通信接口结构体设计(CSocketProtocol) 2、框架接口设计( FrameWork:未
阅读全文