stl
小满不吃香菜
这个作者很懒,什么都没留下…
展开
-
STL之transform函数
概念 transform,一个区间元素交换函数。 1.string小写变大写 #include<iostream> #include<string> #include<algorithm> using namespace std; //仿函数 class myToUpper { public: char operator()(char ch) { if...原创 2020-02-13 11:30:12 · 387 阅读 · 0 评论 -
STL之find_if()函数
find_if()包含三个参数,前两个指出查找范围,第三个参数是一个函数指针或者函数对象,返回第一个查找到的迭代器 例子:返回能整除elem的迭代器 #include<iostream> #include<algorithm> #include<vector> using namespace std; //能整除x的 class fun { public: ...原创 2020-02-12 20:29:43 · 314 阅读 · 0 评论 -
STL仿函数
仿函数又称函数对象,是指重载函数调用操作符的类,其对象常称为函数对象,通过重载()实现的,优点是函数对象可以保存函数调用状态 #include<iostream> using namespace std; class fun { public: void operator()(int x) { cout << x << endl; } }; int...原创 2020-02-12 20:08:38 · 104 阅读 · 0 评论 -
STL常用运算符重载
bool operator<(const Person& p)const //小于运算符 friend ostream& operator<<(ostream& os,const Person& p1) //输出 #include<iostream> #include<string> #include<map>...原创 2020-02-12 11:10:59 · 279 阅读 · 0 评论 -
STL学习(四)关联容器
一.set (一)简介 集合容器,通过实值来排序,通过实值来查找 特点 高效访问 和map数据结构都是红黑树(节点链起来的,因此不支持随机访问) map是分键值对,set键值即实值,实值即键值,键值不能重复 (二)操作 排序顺序 默认为从小到大 加上仿函数greater之后为从大到小 #include<iostream> #include<set> #include...原创 2020-02-11 22:41:07 · 175 阅读 · 0 评论 -
STL学习(三)deque——statck——queue——list——priority_queue
一. deque (一)deque与vector区别 1. deque是双端数组或者双端队列,而vetor是单端的 2. deque头部和尾部添加元素都比较快,而尾部添加快,头部很慢,因此vector只有push_back()和pop_back()函数,而deque多了push_front()和pop_front()函数 3. deque是段连式空间插入和删除比vector快比list慢,dequ...原创 2020-02-11 14:05:26 · 246 阅读 · 0 评论 -
STL学习(二)vector
一.介绍 是动态数组,是连续的空间,如果空间不够用,会申请一个更大的连续的空间,同时迭代器失效 头文件为#include< vector >; 二.构造函数 (为了方便省略< T >) vector(); 无参数的构造 vector(count); n个元素,和数组类似 vector( n,elem ); 用num个val来初始化容器 5个1 6个‘a’ v...原创 2020-02-10 11:01:36 · 303 阅读 · 0 评论 -
STL学习(一)string
介绍 string是专门的字符串操作的一个类,非常强大。字符串CString,QString。string 是一个类, 这个类将以上的内容封装到一起,使得字符串的操作更灵活,方式更多,管理更合理。string这个类使用的时候不用考虑内存的分配与释放,也不用担心越界崩溃,因为前辈在封装string的时候,已经把几乎所有情况都考虑到并处理了。 头文件< string >,注意要using ...原创 2020-02-08 21:45:40 · 190 阅读 · 0 评论 -
类模板练习实现MyArray
类模板练习实现MyArray #include<iostream> using namespace std; template<class T> class MyArray { public: MyArray(int capaCity); //只有类构造,析构函数不用具体模板类 MyArray(const MyArray<T>& arr...原创 2020-02-06 12:13:49 · 762 阅读 · 0 评论 -
STL之模板
1.函数模板和类模板 1.1函数模板传参时不能强转 Template<class T> void fun (T x,T y) { } 调用时: int a = 1; double b = 1.1; fun(a,b) //错误不能强转,如果写函数void fun1(int x,int y)就可以强转. 1.2.编译器对函数模板编译两次,第一次编译本身模板语法,第二次根据具...原创 2020-02-03 21:25:50 · 235 阅读 · 0 评论