问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VC中ctypedptrlist类的用法

发布网友 发布时间:2024-11-01 18:32

我来回答

1个回答

热心网友 时间:2024-11-01 19:09

CTypedPtrList

template < class BASE_CLASS, class TYPE >
class CTypedPtrList : public BASE_CLASS

参数: BASE_CLASS 类型指针列表类的基类;必须是一个指针列表类(CObList或CPtrList)。
TYPE 保存在基类列表中的元素的类型。

说明:
CTypedPtrList类为类CPtrList的对象提供了一个类型-安全的“包装”。当你使用CTypedPtrList而不是CObList或CPtrList的时候,C++类型-检查工具帮助消除由不匹配的指针类型引发的错误。
另外,CTypedPtrList包装实现了许多在使用CObList或CPtrList时要实现的强制转换。
因为所有的CTypedPtrList函数都是内联的,所以使用这个模板不会明显地影响你的代码的大小和速度。
从CObList派生的列表可以是连续的,但是从CPtrList派生的列表却不能。
当一个CTypedPtrList对象被删除时,或者是当它的元素被删除时,只有指针被删除了,而它们所引用的项并没有被删除。
有关使用CTypedPtrList的更多信息,参见“Visual C++程序员指南”中的文章“集合”和“基于模板的类”。
#include <afxtempl.h>

CTypedPtrList类成员

首/尾元素访问
GetHead 返回列表的头元素(不能是空的)
GetTail 返回列表的尾元素(不能是空的)

操作
RemoveHead 从列表的头部删除元素
RemoveTail 从列表的尾部删除元素
AddHead 将一个元素(或另一个数组中的所有元素)添加到列表的头部(产生一个新的头部)
AddTail 将一个元素(或另一个数组中的所有元素)添加到列表的尾部(产生一个新的尾部)

重复
GetNext 获取用于反复的下一个元素
GetPrev 获取用于反复的前一个元素

获取/修改
GetAt 获取在一个给定位置处的元素
SetAt 设置在一个给定位置处的元素

成员详细解释
CTypedPtrList::GetHead

TYPE& GetHead( );
TYPE GetHead( ) const;

返回值:
如果是通过一个指向const CTypedPtrList的指针访问此列表,则GetHead返回一个类型由模板参数TYPE指定的指针。这使此函数只能被使用在赋值语句的右边,这样就保护了列表不被修改。
如果列表被直接访问,或通过一个指向CTypedPtrList的指针访问,则GetHead返回对一个类型由模板参数TYPE指定的指针的引用。这使得此函数可以使用在赋值语句的任何一边,从而允许该列表可以被修改。

参数: TYPE 指定保存在列表中的元素类型的模板参数。

说明:
此成员函数用来获取代表此列表中的头元素的指针。
在调用GetHead之前,你必须保证该列表不是空的。如果该列表是空的,则Microsoft基础类库的调试版将给出断言。可以使用IsEmpty来检验该列表是否包含元素。

CTypedPtrList::GetTail

TYPE& GetTail( );
TYPE GetTail( ) const;

返回值:
如果是通过一个指向const CTypedPtrList的指针访问此列表,则GetTail返回一个类型由模板参数TYPE指定的指针。这使此函数只能被使用在赋值语句的右边,这样就保护了列表不被修改。
如果列表被直接访问,或通过一个指向CTypedPtrList的指针访问,则GetTail返回对一个类型由模板参数TYPE指定的指针的引用。这使得此函数可以使用在赋值语句的任何一边,从而允许该列表可以被修改。

参数: TYPE 指定保存在列表中的元素类型的模板参数。

说明:
此成员函数用来获取此列表中的头元素。
在调用GetTail之前,你必须保证该列表不是空的。如果列表是空的,则Microsoft基础类库的调试版将给出断言。使用IsEmpty来检验列表是否包含元素。

CTypedPtrList::RemoveHead

TYPE RemoveHead( );

返回值:
返回先前在列表头部的指针。这个指针的类型由模板参数TYPE指定。

参数: TYPE 指定保存在列表中的元素类型的模板参数。

说明:
此成员函数从列表的头部删除元素并返回这个元素。
在调用RemoveHead之前,你必须保证该列表不是空的。如果列表是空的,则Microsoft基础类库的调试版将给出断言。使用IsEmpty来检验列表是否包含元素。

CTypedPtrList::RemoveTail

TYPE RemoveTail( );

返回值:
返回先前在列表尾部的指针。这个指针的类型由模板参数TYPE指定。

参数: TYPE 指定保存在列表中的元素类型的模板参数。

说明:
此成员函数从列表的尾部删除元素并返回这个元素。
在调用RemoveHead之前,你必须保证该列表不是空的。如果列表是空的,则Microsoft基础类库的调试版将给出断言。使用IsEmpty来检验列表是否包含元素。

CTypedPtrList::AddHead

POSITION AddHead( TYPE newElement );
void AddHead( CTypedPtrList <BASE_CLASS, TYPE> *pNewList );

返回值:
第一种版本返回新插入的元素的POSITION值。

参数: TYPE 保存在基类列表中的元素的类型。
newElement 要添加到此列表中的对象指针。可以是NULL值。
BASE_CLASS 此类型指针列表类的基类;必须是一个指针列表类(CObList或CPtrList)。
pNewList 一个指向另一个CTypedPtrList对象的指针。在pNewList中的元素将被添加到列表中。

说明:
此成员函数调用BASE_CLASS::AddHead。
第一种版本将一个新元素添加到列表的头元素之前。
第二种版本将另一个列表中的元素添加到此列表的头元素之前。

CTypedPtrList::AddTail

POSITION AddTail( TYPE newElement );
void AddTail( CTypedPtrList <BASE_CLASS, TYPE> *pNewList );

返回值:第一个版本返回新插入的元素的POSITION值。

参数 TYPE 保存在基类列表中的元素的类型。
newElement 要添加到此列表中的对象指针。可以是NULL值。
BASE_CLASS 此类型指针列表类的基类;必须是一个指针列表类(CObList或CPtrList)。
pNewList 一个指向另一个CTypedPtrList对象的指针。在pNewList中的元素将被添加到列表中。

说明:
此成员函数调用BASE_CLASS::AddTail。
第一种版本将一个新元素添加到列表的尾元素之后。
第二种版本将另一个列表中的元素添加到此列表的尾元素之后。

CTypedPtrList::GetNext

TYPE& GetNext( POSITION& rPosition );
TYPE GetNext( POSITION& rPosition ) const;

返回值:
如果是通过一个指向const CTypedPtrList的指针访问此列表,则GetNext返回一个类型由模板参数TYPE指定的指针。这使此函数只能被使用在赋值语句的右边,这样就保护了列表不被修改。
如果列表被直接访问,或通过一个指向CTypedPtrList的指针访问,则GetNext返回对一个类型由模板参数TYPE指定的指针的引用。这使得此函数可以使用在赋值语句的任何一边,从而允许该列表可以被修改。

参数: TYPE 指定保存在列表中的元素类型的模板参数。
rPosition 一个对先前调用GetNext,GetHeadPosition或其他成员函数返回的POSITION值的引用。

说明:
此成员函数用来获取由rPosition标识的列表元素,然后将rPosition设置为列表中的下一个项的POSITION值。如果你是通过调用GetHeadPosition或CPtrList::Find来建立初始位置的,你就可以使用GetNext来实现一个向前的反复循环。
你必须保证你的POSITION值代表的是列表中的一个有效位置。如果位置是无效的,则Microsoft基础类库的调试版将给出断言。
如果获取的元素是列表中的最后一个,则rPosition被设置为新值NULL。
在一个反复中删除一个元素是有可能的。参见CObList::RemovAt的示例。

CTypedPtrList::GetPrev

TYPE& GetPrev(POSITION& rPosition );
TYPE GetPrev( POSITION& rPosition ) const;

返回值:
如果是通过一个指向const CTypedPtrList的指针访问此列表,则GetPrev返回一个类型由模板参数TYPE指定的指针。这使此函数只能被使用在赋值语句的右边,这样就保护了列表不被修改。
如果列表被直接访问,或通过一个指向CTypedPtrList的指针访问,则GetPrev返回对一个类型由模板参数TYPE指定的指针的引用。这使得此函数可以使用在赋值语句的任何一边,从而允许该列表可以被修改。

参数: TYPE 指定保存在列表中的元素类型的模板参数。
rPosition 一个对先前调用GetPrev或其它成员函数返回的POSITION值的引用。

说明:
此成员函数用来获取由rPosition标识的列表元素,然后将rPosition设置为列表中的下一个项的POSITION值。如果你是通过调用GetTailPosition或Find来建立初始位置的,你就可以使用GetPrev来实现一个反向的反复循环。
你必须保证你的POSITION值代表的是列表中的一个有效位置。如果位置是无效的,则Microsoft基础类库的调试版将给出断言。
如果获取的元素是列表中的第一个,则rPosition被设置为新值NULL。

CTypedPtrList::GetAt

TYPE& GetAt( POSITION position );
TYPE GetAt( POSITION position ) const;

返回值:
如果是通过一个指向const CTypedPtrList的指针访问此列表,则GetAt返回一个类型由模板参数TYPE指定的指针。这使此函数只能被使用在赋值语句的右边,这样就保护了列表不被修改。
如果列表被直接访问,或通过一个指向CTypedPtrList的指针访问,则GetAt返回对一个类型由模板参数TYPE指定的指针的引用。这使得此函数可以使用在赋值语句的任何一边,从而允许该列表可以被修改。

参数: TYPE 指定保存在列表中的元素类型的模板参数。
position 一个由先前调用GetHeadPosition或Find成员函数返回的POSITION值。

说明:
一个类型为POSITION的变量是此列表的一个关键字。它与索引是不一样的,你不能自己处理一个POSITION值。GetAt获取与一个给定位置关联的CObject指针。
你必须确保你的POSITION值表示的是列表中的一个有效位置。如果它是无效的,则Microsoft基础类库的调试版将给出断言。
这个内联函数调用了BASE_CLASS::GetAt。

CTypedPtrList::SetAt

void SetAt( POSITION pos, TYPE newElement );

参数: pos 要被设置的元素的POSITION。
TYPE 保存在基类列表中的元素类型。
newElement 要被写入列表中去的对象指针。

说明:
此成员函数调用BASE_CLASS::SetAt。
一个类型为POSITION的变量是此列表的一个关键字。它与索引是不一样的,你不能自己处理一个POSITION值。SetAt写对象指针到列表中指定位置。
你必须确保你的POSITION值表示的是列表中的一个有效位置。如果它是无效的,则Microsoft基础类库的调试版将给出断言。
更多的细节说明,参见CObList::SetAt。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
夫妻养狗狗把谁当主人 两人同养狗认谁当主人 什么蔬菜和水果可以美容祛斑呢? vivox60怎么查看参数配置详情 怎样查看vivo手机的屏幕参数? vivo手机怎么看手机参数 vi##手机怎么看配置? 义乌到湖州没有直达快客???必须到南浔?? 湖州到绍兴的汽车有几班? 注销驾考需要本人吗 VC如何在list中添加列,谢谢 子女反对父母买存款保险怎么办 手机触摸屏(屏幕)失灵 在屏幕右边边缘处出现小白点手机屏幕的小白_百 ... 三星触摸屏手机因为摁的力量过大屏幕上出现小白点怎么办 拉黑一个人的经典说说大全 ...x-3x2ym+1+x3y-3x4-1是五次四项式,单项式3x3ny4... 初中一年级题! ...1次幂+x³y-3x的四次幂是五次四项式,单项式3x的(3-x)次幂与多... ...m+1 +x 3 y-3x 4 -1是五次四项式,单项式3x 3n y 4 -m z与多项式的... ...3x^2y^m+i+x^3y-3x^4-1是五次四项式,单项式3x^3n y^3- ...单项式3X的3n次方y的3-m次方z与多项式的次数 跑跑卡丁车手游预约礼包怎么领取_永久绝版套装官网领取攻略 优酷会员可以在几台电视同时登陆使用? 惠州今天封城了吗 从低风险区返回惠州需要隔离吗_深圳回惠州要不要隔离 银河麒麟版本信息 ...超级计算机装的什么系统,是windows,unix , linux 还是其他的?普_百 ... 取保候审是在外地办吗 ...少女,小女神花玲,守护甜心,爱丽丝学园,水果篮子,这样的人物美型的... ...要像水果篮子和守护甜心一样的 最好有 魔法+变身+恋爱的 瓷砖背胶十大名牌厂家排行榜 唐姆瓷砖背胶多少钱 2023全民国家安全教育日是几月几号 国家安全教育日是每年的哪一天 穿越火线怎么才能加入战队呢?加入战队有什么好处? 怀孕查染色体检查什么 孕前检查多钱 孕前检查需要注意什么 做家电和厨房电器生意应注意哪些风水学 做电器生意要注意什么 公有制与非公有制的区别,什么是公有制,什 公有制和非公有制之间的关系 我买了一辆二手山地车,车头有1个自由女神像,请问有没有人知道是什么牌子... ...一辆捷安特亮红色的山地车,虽然同学们都没有看过,但都说红色是女士... ...有什么人注意的情况下,我就把一辆停在暗处的山地车车 英语求救!not only,but also中not only这个分句什么时候倒装,什么时候... not only… but also什么时候要用倒装语序呢? 英语求救!not only,but also中not only这个分句应倒装对吗 中国核工业建设集团公司核心业务 合租时代的爱情作者简介 《合租时代的爱情》网络名:《这场爱情如狼似虎》 作者:灭灯退魈? 适合男孩出生的日子男孩子在哪天出生比较好运?