摘要:目录为了使类属算法具有灵活性,STL常使用函数的重载机制为算法提供两种形式。算法的第一种形式使用的是常规的操作来实现。第二种形式中,算法可以根据用户指定的准测对元素经行处理。函数对象包含了一个可以通过函数调用运算符()使用的函数。实际上,函数对象是重载了函数调用运算符operator()的类模板。用户可以创建自己的函数对象。STL提供了算术函数对象,关系函数对象,逻辑函数对象。算术函数对象:plus 加minus 减multiplies 乘divides 除modulus ...
阅读全文
摘要:目录对存储在数组中的数据进行排序的特殊排序算法,称为堆排序。make_heappush_heappop_heapsort_heap
阅读全文
摘要:目录用于在容器元素上执行数字计算。accumulateinner_productadjacent_differencepartial_sum
阅读全文
摘要:目录通过重新排列,删除或改变元素的值来修改容器中的元素。修改算法中改变元素顺序,而不改变其值的算法成为变异(Mutating),(M)。copycopy_backwardfillfill_ngenerategenerate_ninplace_mergemergenext_permutation(M)nth_elementpartial_sortpartial_sort_copypartition(M)prev_permutation(M)random_shuffle(M)removeremove_copyremove_copy_ifremove_ifreplacereplace_copyrep
阅读全文
摘要:目录只访问容器中的元素,而不修改这些元素。adjacent_findequalequal_rangefindfind_endfind_first_offind_iffor_eachincludeslower_boundmismatchcountcount_ifmaxmax_elementminmin_elementbinary_searchsearchsearch_nupper_bound
阅读全文
摘要:目录大多数算法都包含在头文件algorithm中,个别算法,如数字算法,包含在头文件numeric中。#include #include
阅读全文
摘要:目录队列是一种先进先出的数据结构。操作:size() 返回元素实际个数empty() 判断是否为空push(item) 向队尾添加元素front() 返回队首元素back() 返回队尾元素pop() 去除队首元素q1.swap(q2) 两个队列元素交换q1 == q2 判断是否相等注:队列没有clear方法,程序需要自己实现示例代码:#include #includ...
阅读全文
摘要:目录重要的数据结构。操作:size() 返回实际个数empty() 判断是否为空push(item) 压栈top() 返回栈顶元素pop() 将栈顶元素删除s1.swap(s2) 将两个栈元素交互s1 == s1 判断是否相等注:栈没有clear方法,若程序需要,可以单独编写!示例代码:#include #include using n...
阅读全文
摘要:目录除了在常规框架下使用的容器之外,STL还提供了适合特殊情况的容器,成为容器适配器。容器适配器不支持迭代器。也就是说,迭代器不能和容器适配器一起使用。
阅读全文
摘要:目录头文件:#include 集合和多重集合的唯一区别:多重集合可以包含重复元素,集合不可以包含重复元素。构造方法ctType ct 创建空集合 ct 创建自定义排序方式的空集合ctType ct(otherCt) 用另外的集合创建集合 ct(otherCt) 用另外的集合创建自定义排序方式的集合ctType ct(beg,end) 用另外的集合创建集合 ct(beg,end) 用另外的集合创建自定义排序方式的集合,从beg 到end + 1示例: set i...
阅读全文
摘要:目录头文件#include templateoutputIterator copy(InputIterator beg,InputIterator end, outputIterator beg)从原型上看主要作用是将一个容器的迭代器拷贝给另外一个容器的迭代器示例代码:#include #include #include #include using namespace std;int main() { int intArray[] = {0,1,2,3,4,5,6,7,8,9}; vector vecList(10); copy(intArray,intArray+10,vecList.b.
阅读全文
摘要:目录顺序容器公共方法seqCont.clear() 从容器中删除所有元素seqCont.erase(position) 删除指定位置的元素seqCont.erase(begin,end) 删除一段元素,从begin 到end -1seqCont.insert(position,element) 插入元素到指定位置上seqCont.insert(position.n,element) 插入n个相同元素到指定位置上seqCont.insert(posit...
阅读全文
摘要:目录默认构造函数 将对象初始化为空带参构造函数 拷贝构造函数析构函数ct.empty() 判断是否为空ct.size() 元素个数ct.max_size() 最大元素个数ct1.swap(ct2) 交换ct1 和 ct2 中的元素ct.begin() 第一个元素的迭代器ct.end() 最后一个元素的迭代器ct.rbegin() 倒置开始位置,返回最后一个元素的指针ct.r...
阅读全文
摘要:目录1,构造方法:vector vecList 创建一个没有任何元素的向量vector vecList(otherVecList) 用另一个类型相同向量初始化该向量vector vecList(size) 初始化一个固定...
阅读全文
摘要:(此篇只是一个目录,将分成单篇去完成)STL 主要有三个部分组成:容器,迭代器,算法。 第一部分:知其然一,容器*顺序容器向量(Vector)双端队列(Dequeue)表(List) PS: Copy 方法*关联容器集合(Set)多重集合(Mu...
阅读全文
摘要:#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")HANDLE hMutex = CreateMutexA(NULL, true, "XXX_0D0DDD11-5E3F-4287-BB74-7E3D2C7720EF"); if (hMutex) { if (GetLastError() == ERROR_ALREADY_EXISTS) { //std::cerr << "Program alre
阅读全文
摘要:int n_args = 0; LPWSTR *args = CommandLineToArgvW(GetCommandLineW(), &n_args); if( args ) { if( n_args >= 2 ) { std::wstring filePath = L""; auto last_prm = aux::chars_of(args[n_args - 1]); if( last_prm.like(L"*\\*") || last_prm.like(L...
阅读全文
摘要:键盘鼠标HOOK Demo1,------------------------ 导出代码// keyHooker.cpp : 定义 DLL 应用程序的导出函数。//#include "stdafx.h"#include "windows.h"HINSTANCE h_st;HHOOK g_KeyBoardHook;//HHOOK g_MouseHook;HWND g_wnd;/*LRESULT CALLBACK MouseProc( int nCode, // hook code WPARAM wParam, // message identifier L
阅读全文
摘要:1,ini格式文件[myApplication]somePath = C:\test dat.datsomeValue = 123#include using namespace std;#include "Poco/Util/Application.h"#include "Poco/Path.h"using namespace Poco::Util;#include "Poco/AutoPtr.h"#include "Poco/Util/IniFileConfiguration.h"using Poco::Aut
阅读全文