摘要: C++ 算法 算法概念 算法是特定问题求解步骤的描述 在计算机中表现为指令的有限序列 算法是独立存在的一种解决问题的方法和思想。 对于算法而言,语言并不重要,重要的是思想。 算法和数据结构区别 数据结构只是静态的描述了数据元素之间的关系 高效的程序需要在数据结构的基础上设计和选择算法 程序=数据结构 阅读全文
posted @ 2017-11-06 17:37 lsgxeva 阅读(2711) 评论(0) 推荐(0)
摘要: C++ 数据结构概念 数据结构起源 计算机从解决数值计算问题到解决生活中的问题 现实生活中的问题涉及不同个体间的复杂联系 需要在计算机程序中描述生活中个体间的联系 数据结构主要研究非数值计算程序问题中的操作对象以及它们之间的关系 不是研究复杂的算法 数据结构中的基本概念 数据 – 程序的操作对象,用 阅读全文
posted @ 2017-11-06 16:14 lsgxeva 阅读(3599) 评论(0) 推荐(0)
摘要: C++ STL 常用算术和生成算法 accumulate() accumulate: 对指定范围内的元素求和,然后结果再加上一个由val指定的初始值。 #include<numeric> vector<int> vecIntA; vecIntA.push_back(1); vecIntA.push_ 阅读全文
posted @ 2017-11-06 15:41 lsgxeva 阅读(407) 评论(0) 推荐(0)
摘要: C++ STL 常用拷贝和替换算法 copy() 复制 vector<int> vecIntA; vecIntA.push_back(1); vecIntA.push_back(3); vecIntA.push_back(5); vecIntA.push_back(7); vecIntA.push_ 阅读全文
posted @ 2017-11-06 15:35 lsgxeva 阅读(2574) 评论(0) 推荐(0)
摘要: C++ STL 常用排序算法 merge() 以下是排序和通用算法:提供元素排序策略 merge: 合并两个有序序列,存放到另一个序列。 例如: vecIntA,vecIntB,vecIntC是用vector<int>声明的容器, vecIntA已包含1,3,5,7,9元素, vecIntB已包含2 阅读全文
posted @ 2017-11-06 15:29 lsgxeva 阅读(655) 评论(0) 推荐(0)
摘要: C++ STL 常用查找算法 adjacent_find() 在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的迭代器。否则返回past-the-end。 vector<int> vecInt; vecInt.push_back(1); vecInt.pu 阅读全文
posted @ 2017-11-06 15:24 lsgxeva 阅读(908) 评论(0) 推荐(0)
摘要: STL 算法中函数对象和谓词 函数对象和谓词定义 函数对象: 重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象。一个类对象,表现出一个函数的特征,就是通过“对象名+(参数列表)”的方式使用一个类对象,如果没有上下文,完全可以把它看作一个函数对 阅读全文
posted @ 2017-11-06 13:20 lsgxeva 阅读(735) 评论(0) 推荐(0)
摘要: C++ STL 常用遍历算法 STL的容器算法迭代器的设计理念 1) STL的容器通过类模板技术,实现数据类型和容器模型的分离 2) STL的迭代器技术实现了遍历容器的统一方法;也为STL的算法提供了统一性奠定了基 础 3) STL的算法,通过函数对象实现了自定义数据类型的算法运算;所以说:STL的 阅读全文
posted @ 2017-11-06 13:19 lsgxeva 阅读(4588) 评论(0) 推荐(0)
摘要: STL 算法介绍 算法概述 算法部分主要由头文件<algorithm>,<numeric>和<functional>组成。 <algorithm>是所有STL头文件中最大的一个,其中常用到的功能范围涉及到比较、 交换、查找、遍历操作、复制、修改、反转、排序、合并等等。 <numeric>体积很小,只 阅读全文
posted @ 2017-11-06 02:19 lsgxeva 阅读(3622) 评论(0) 推荐(0)
摘要: STL Map和multimap 容器 map/multimap的简介 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对。它提供 基于key的快速检索能力。 map中key值是唯一的。集合中的元素按一定的顺序排列。元素插入过程是按排序 规则插入,所以不能指定插入位置。 阅读全文
posted @ 2017-11-06 01:55 lsgxeva 阅读(1057) 评论(0) 推荐(0)
摘要: STL Set和multiset 容器 set/multiset的简介 set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列。 元素插入过程是按排序规则插入,所以不能指定插入位置。 set采用红黑树变体的数据结构实现,红黑树属于平衡二叉树。在插入操作和删除操 作上比vecto 阅读全文
posted @ 2017-11-06 01:24 lsgxeva 阅读(404) 评论(0) 推荐(0)
摘要: STL Queue 容器 Queue简介 queue是队列容器,是一种“先进先出”的容器。 queue是简单地装饰deque容器而成为另外的一种容器。 #include <queue> queue对象的默认构造 queue采用模板类实现, queue对象的默认构造形式: queue<T> queT 阅读全文
posted @ 2017-11-06 00:55 lsgxeva 阅读(322) 评论(0) 推荐(0)
摘要: STL stack 容器 Stack简介 stack是堆栈容器,是一种“先进后出”的容器。 stack是简单地装饰deque容器而成为另外的一种容器。 #include <stack> stack对象的默认构造 stack采用模板类实现, stack对象的默认构造形式: stack <T> stkT 阅读全文
posted @ 2017-11-06 00:48 lsgxeva 阅读(238) 评论(0) 推荐(0)
摘要: STL Deque 容器 Deque简介 deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双 端的,而vector是单端的。 deque在接口上和vector非常相似,在许多操作的地方可以直接替换。 deque可以随机存取元素(支持索引值直 阅读全文
posted @ 2017-11-06 00:38 lsgxeva 阅读(494) 评论(0) 推荐(0)
摘要: c++11 List 容器 List简介 list是一个双向链表容器 可高效地进行插入删除元素。 list不可以随机存取元素,所以不支持at(pos)函数与[]操作符。 #include <list> list对象的默认构造 list采用采用模板类实现 对象的默认构造形式: list<T> lstT 阅读全文
posted @ 2017-11-06 00:17 lsgxeva 阅读(1633) 评论(0) 推荐(0)