C++编程(F)

Differencetype typedef stdreverseiteratoriterator

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 是: f1: apple grapefruit lemon lime orange pear quince f2: <empty> Beijing University of Posts & Telecommunications Beijing young@buptnet.edu.cn 17.2.2.2 前端操作 list也提供一些针对第一个元素的操作,与每个容 器都提供的针对最后元素的操作相对应 对list而言,前端操作与后端操作一样方便而高 效,如果可以选择的话,最好是用后端操作,这样 写出来的代码也对vector适用 template <class T, class A = allocator<T> > class list { public: // 元素访问 reference front(); // 引用第一个元素 const_reference front() const; void push_front(const T&); // 加入新的第一个元素 void pop_front(); // 删除第一个元素 }; Beijing University of Posts & Telecommunications Beijing young@buptnet.edu.cn 17.2.2.3 其他操作 对list的插入和删除操作效率特别高,当这 类操作非常频繁时,会使得人们倾向于使用 list,反过来,又使直接支持某些删除元素 的通用方法变得很有价值 template <class T, class A = allocator<T> > class list { public: void remove(const T& val); // 删除所有值为val的元素 template <class Pred> void remove_if(Pred p); void unique(); // 根据==删除连续的重复元素 template <class BinPred> void unique(BinPred b); // 根据b删除重复元素 void reverse(); / / reverse order of elements }; Beijing University of Posts & Telecommunications Beijing young@buptnet.edu.cn 17.2.3 双端队列-deque deque(其发音起伏就像check)就是一种双 端的队列,也就是说,deque是一个优化了 的序列,对其两端的操作效率类似于list, 而其下标操作具有接近vector的效率 注意:在deque的中间插入和删除元素具有 与vector一样的低效率,而不是类似list的 效率 Beijing University of Posts & Telecommunications Beijing young@buptnet.edu.cn 17.3 序列适配器 vector、list和deque序列不可能互为实现的 基础而同时又不损失效率,另一方面,stack和 queue则都可以在这三种基本序列的基础上优 雅而高效地实现 因此,stack和queue就没有定义为独立的容 器,而是作为基本容器的适配器(adapter) 容器适配器所提供的是原来容器的一个受限的 界面(特别是适配器不提供迭代器,提供它们的 意图就是为了只经由它们的专用界面使用) Beijing University of Posts & Telecommunications Beijing young@buptnet.edu.cn 17.3.1 堆栈-stack stack容器在<stack>中定义 template <class T, class C = deque<T> > class std: :stack{ protected: C c; public: typedef typename C::value_type value_type; typedef typename C::size_type size_type; typedef C container_type; explicit stack(const C& a =C()) : c(a) {...
View Full Document

Ask a homework question - tutors are online