社区
C++ 语言
帖子详情
STL的容器适配器有何用处?一般用在什么地方?
viplpf
2009-08-04 08:30:09
最近看stl,对容器适配器不太理解,书中只是提了一下,没有详细讲解。请高手赐教,非常感谢。
...全文
742
10
打赏
收藏
STL的容器适配器有何用处?一般用在什么地方?
最近看stl,对容器适配器不太理解,书中只是提了一下,没有详细讲解。请高手赐教,非常感谢。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xianitzph
2011-09-10
打赏
举报
回复
学习了!
windsting
2009-08-05
打赏
举报
回复
我感觉 #5 楼说的挺到位,我看 C++ 编程思想 第二卷的时候看到这玩意跟LZ想法相仿,
觉得不是很有用。要我说有个大概印象就行了,好像我还真没见过这玩意被用到。
Malachi
2009-08-05
打赏
举报
回复
学习学习了 早上C++ Primer里刚看到过~~~
salali
2009-08-04
打赏
举报
回复
类似于数组,但比数组多了一些功能,也就是STL定义的一些函数
superspring
2009-08-04
打赏
举报
回复
找本书看吧,容器就是让你更方便的操作数据结构
比如有stack,有queue,都提供很方便的操作,你不用自己系代码
还有vector也一样,比数组好用多了,你不用数组担心越界这些东西
配合上stl的algorithm,容器就更好用了,可以进行各种各样的复制,查找,等等
如果英文不错的话,
看看http://www.cplusplus.com/reference/stl/ 里面的stl container
你就能基本掌握其用法
Dave888Zhou
2009-08-04
打赏
举报
回复
这是我以前回复别人一个帖子时说的:
adapter原意是插座、适配器、接合器的意思。现在我需要一个栈结构,我们可以用deque来实现,只在一端进行元素插入和弹出,另一端不动。这说明deque可以用作一个栈结构,但它又不能直接地严格地满足你的要求,因为你不能防止别人在另一端乱动你的东西。你需要对它进行一些包装,作一些限制,使之只能在一端进行插入和删除。也就是说你必须提供一个“插座”,这个“插座”一端插在deque上,另一端插在你的程序中,你就可以使用栈结构了。而stack就是这样的“插座”,它连接了deque和你的程序。表面上看你使用的是stack,实际上你是通过stack这个“插座”来使用deque(因为stack完全是用deque来实现的,它并没有任何其他的东西,它只是在deque上面作了一层包装,相当于一个“插座”的功能)。因此,stack、queue、priority_queue这样的类一般称为容器适配器,它们只是基本容器类型(vector,dequeue,list)的适配。
实际上,这也适配器模式的基本思想:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。也就是说,在一个类的接口上提供一个“插座”类,使它变成你希望使用的接口。
pengzhixi
2009-08-04
打赏
举报
回复
容器适配器就是在容器的基础上实现自身特有的操作。
至于用在哪这个就不好说了。当要求的操作符合适配器的操作时就是用适配器。
机智的呆呆
2009-08-04
打赏
举报
回复
比如STL中stack的实现就是适配是想的。
lori227
2009-08-04
打赏
举报
回复
在遍历容器的时候用的最多,一般有用到容器 都会用到
下面iter end 都是迭代器,他指向的地址里面就是容器里面的值
vector<int>::iterator iter = m_vecInt.begin();
vector<int>::iterator end = m_vecInt.end();
for( ; iter != end; ++iter)
{
cout << (*iter) <<"\n";
}
cout << endl;
晨星
2009-08-04
打赏
举报
回复
就是由基本的容器适配(改造)出来的那些容器,其它没啥特殊的。
比如stack,因为我们可以把stack理解成只是对vector、deque或list的访问加一点限制而已(只能从头部访问),所以没有必要把stack做成一个基本容器,使用其它的基本容器再稍微封装改造一下就OK了,所以stack在STL中就只是一个“容器适配器”,而不是一个基础容器。
c++
STL
容器
讲义与演示
在使用
STL
容器
时,无需担心内存泄漏问题。但是,需要注意的是,当元素是用户定义的对象时,需要确保对象的构造和析构函数正确地管理其资源。 七、
STL
实践与示例 通过实例,我们可以更清晰地了解如何使用
STL
容器
。...
STL
应用例子 包括各
容器
的使用
这个压缩包文件包含了
STL
应用的多个实例,适用于VC2005编译环境,并且所有例子都已经通过了编译测试,非常适合初学者和有经验的开发者用来学习和参考。 1. **
容器
**: - **vector**:动态数组,支持快速的随机访问...
STL
容器
一览,简单介绍了各个
容器
的特点
STL
中的
容器
是存储数据的基础模板类,每个
容器
都有其特定的用途和特点,下面简要介绍各种
STL
容器
及其特性。 首先,
容器
可以分为两大类:序列
容器
和关联
容器
。 序列
容器
中主要包括以下几种类型: 1. vector(向量)...
STL
入门
STL
入门
STL
入门
STL
入门
STL
入门
STL
入门
5. **
适配器
(Adapter)**:
适配器
用于修改或扩展已有的
容器
、迭代器或算法的功能,比如stack和queue是对deque的适配,提供了栈和队列的操作。 6. **空间配置器(Allocator)**:空间配置器负责内存的分配和释放,为...
STL
的应用简介
每种
容器
都有其特点和用途。例如,vector 支持运行时加入新的元素,但是在任意位置插入元素效率较低;map 是一种关联
容器
,可以根据键值快速查找元素。 3.
STL
中的迭代器 迭代器是
STL
中的重要组件,提供了遍历...
C++ 语言
65,198
社区成员
250,522
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章