首页 > 代码库 > C++学习笔记34:泛型编程拓展3
C++学习笔记34:泛型编程拓展3
输入流迭代器
#include <iostream> #include <iterator> #include <algorithm> #include <vector> using namespace std; int main() { vector<int> v(4); vector<int>::iterator it = v.begin(); cout << "enter four ints separated by space & a char:\n"; istream_iterator<int> head(cin), tail; copy(head, tail, it); cin.clear(); cout << "vector="; for ( it = v.begin(); it != v.end(); it++) { cout << *it << " "; } cout << endl; return 0; }
表:标准模板库中为双向链表
表的使用
- 定义包含Point对象的容器:list<Point> pts(8);
- 插入:pts.insert(pts.begin(),Point(1,2));
- 表头插入:pts.push_front(Point(1,2));
- 插入:pts.insert(pts.end(),Point(1,2));
- 表尾插入:pts.push_back(Point(1,2));
- 定义包含Point指针的容器:list<Point*>ppts(8);
- 插入:ppts.insert(ppts.begin(),new Point(1,2));
- 插入:ppts.insert(ppts.end(),new Point(1,2));
- 删除:delete ppts.front();ppts.remove(ppts.front());
- 判断表是否为空:if(pts.empty()) cout << "Empty!";
表与迭代器
迭代器可以和表协同工作,方式与向量相同
list<int> a(8);
list<int>::iterator it;
for( it = a.begin();it != a.end();it++)
*it = GenerateRandomNumber(10,99);
表排序
- 直接使用表的成员函数:a.sort();//默认升序
- 降序:reverse()
- 降序:(传入函子)greater_equal<int>()
- a.sort(greater_equal<int>());
- 对于自定义对象,需要重载operator <以进行比较
标准算法
调用标准模板库的函数
标准函子
算术函子
plus<T>
minus<T>
multiplies<T>
divides<T>
modulus<T>
negate<T>
关系函子
equal_to<T>
not_equal_to<T>
greator<T>
greator_equal<T>
less<T>
less_equal<T>
逻辑函子
logical_and<T>
logical_or<T>
logical_not<T>
C++学习笔记34:泛型编程拓展3
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。