欢迎来到天天文库
浏览记录
ID:57650433
大小:47.00 KB
页数:25页
时间:2020-08-30
《VC++中list的使用方法总结-..doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、这几天在做图像处理方面的研究,其中有一部分是关于图像分割方面的,图像目标在分割出来之后要做进一步的处理,因此有必要将目标图像的信息保存在一个变量里面,一开始想到的是数组,但是马上就发现使用数组的缺点:数组长度固定,动态分配内存很容易导致错误发生。最重要的一点是我要保存目标图像的每一点的坐标值,使用数组就有点无能为力了。因此到百度、Google大神上面找思路,终于被我发现在c++的标准库里面还有这么一个模板类:list,下面就是对找到的资料的汇总和加工。vc6自带的msdn帮助文档的解释以下是引自msdn帮助文档(中文是我自己翻译的,错误之处请包涵。): Thetem
2、plateclassdescribesanobjectthatcontrolsavarying-lengthsequenceofelementsoftypeT.Thesequenceisstoredasabidirectionallinkedlistofelements,eachcontainingamemberoftypeT. 本模板类描述了一个对象,这个对象是类型为T的可变长度的序列元素。这个序列采用双向链表的方式存储每一个元素,其中每一个元素的数据流行都是T。 Theobjectallocatesandfreesstorageforthesequenceit
3、controlsthroughaprotectedobjectnamedallocator,ofclassA.Suchanallocatorobjectmusthavethesameexternalinterfaceasanobjectoftemplateclassallocator.Notethatallocatorisnotcopiedwhentheobjectisassigned. 对序列对象的分配和释放操作通过一个受保护的对象allocator进行。这样一个allocator对象必须有相同的外部接口作为一个模板类分配器的对象。注意:当对象被分配之后alloc
4、ator不能被复制。 Listreallocationoccurswhenamemberfunctionmustinsertoreraseelementsofthecontrolledsequence.Inallsuchcases,onlyiteratorsorreferencesthatpointaterasedportionsofthecontrolledsequencebecomeinvalid. 当一个成员要进行insert或者erase操作时,列表的重新分配操作发生。在这种情况下,只有迭代器或者引用所指向的要删除的对象的指针变为无效。msdn帮助文档自带的
5、例子下面为msdn帮助文档中自带的一个例子,该例展示了如何使用迭代器读取列表中的元素和进行插入操作。#include#includeusingnamespacestd;typedeflistLISTINT;voidmain(){ intrgTest1[]={5,6,7}; intrgTest2[]={10,11,12}; LISTINTlistInt; LISTINTlistAnother; LISTINT::iteratori; //Insertoneatatime listInt.insert(listInt.
6、begin(),2); listInt.insert(listInt.begin(),1); listInt.insert(listInt.end(),3); //123 for(i=listInt.begin();i!=listInt.end();++i) cout<<*i<<""; cout<7、 cout<
7、 cout<
此文档下载收益归作者所有