C++ 中 如何释放掉list中的某一项

如题所述

创建list。。。
#include <iostream>
#include <list>
#include <iterator>
#include <algorithm>

using namespace std;
int main()
{
list <int> l;
for(int i=0; i<10; ++i)
l.push_back(i);

copy(l.begin(),l.end(),ostream_iterator<int>(cout,"\t") ) ;
cout<<endl;

list<int>::iterator ptr = l.begin();
for( ; ptr!= l.end(); )
if( *ptr == 3 ) //删除的条件
l.erase(ptr++);
else
++ptr;

copy(l.begin(),l.end(),ostream_iterator<int>(cout,"\t") ) ;
cout<<endl;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-16
将指向该项的指针指向该项指向的下一项,然后释放该项的空间即可
第2个回答  2011-07-19
我只用过STL
在C++中要删除具体某一个的话 就是用earse(迭代器)
迭代器指向的位置 就是你要删除的地方!
第3个回答  2011-07-16
DeleteString( UINT nIndex );参数是记录编号
第4个回答  2011-07-16
是STL吗?应该有函数的吧

C++ 中 如何释放掉list中的某一项
include <iostream> include <list> include <iterator> include <algorithm> using namespace std;int main(){ list <int> l;for(int i=0; i<10; ++i)l.push_back(i);copy(l.begin(),l.end(),ostream_iterator<int>(cout,"\\t") ) ;cout<<endl;list<int>::iterator ptr = l.b...

谁能告诉我c++里list中怎么删除具有一定条件的量
include <iostream> include <algorithm> using namespace std;bool IsOdd (int i) { return ((i%2)==1); } int main () { int myints[] = {1,2,3,4,5,6,7,8,9}; \/\/ 1 2 3 4 5 6 7 8 9 \/\/ bounds of range:int* pbegin = myints; \/\/ ^ int* pend = ...

下面一段C++程序,如何将 list中的char*取出来放到char数组中
楼主是否要这样的效果:include <iostream>#include <list>using namespace std;int main(){char buf[1024] = {'h','e','l','l','o'};list<char*> g_list; g_list.push_back(buf);sprintf(buf, "world");g_list.push_back(buf);int pos = 0;char tempbuffer[1024] = {0};for...

c++ 怎么取list中特定的一块区域的值,比如list中有100条记录,我想直接...
list是没有随机迭代器的,所以只能通过逐个便利,数到第20-50个去操作 或者也很简单,用标准库的Vector,用list构造一个vector,然后直接取相应范围的值,这样比较耗资源 下面来给你示范一下如何取list define list<type>::iterator iterType;int i = 1;for(iterType it = list.begin(); it !=...

下面一段C++程序,如何将 list中的char*取出来放到char数组中
楼主是否要这样的效果:include <iostream>#include <list>using namespace std;int main(){char buf[1024] = {'h','e','l','l','o'};list<char*> g_list; g_list.push_back(buf);sprintf(buf, "world");g_list.push_back(buf);int pos = 0;char tempbuffer[1024] = {0};for...

C++中如何释放list类的内存?
list中的内存是自动管理的,不需要你去释放。如果你通过new申请了一个list对象,在使用结束后你仍需要delete来释放这个对象本身的内存。

C++中如何遍历输出list中的元素?
C++ 利用利用迭代器iterator就可以遍历输出了;using namespace std;int main() { vector<int> ivec;ivec.push_back(1);ivec.push_back(2);ivec.push_back(3);ivec.push_back(4);for(vector<int>::iterator iter = ivec.begin();iter != ivec.end(); ++iter)cout << *iter << ...

怎么在一个数组中删除一个数,C++中
可以使用CArray中的RemoveAt(i)函数进行删除

已知一个带头结点的循环链表为list,设计一个算法,删除链表中数据域值...
已知一个带头节点的循环列表为list设计一个算法,删除链表中数据域值为item的所有结点C++

C++中如何从CList中得到其中任意一个元素?
CString("ABC"));myList.AddTail(CString("123"));\/\/ Verify the first element (index 0).ASSERT(CString("XYZ") == myList.GetAt(myList.FindIndex(0)));\/\/ Verify the third element (index 2).ASSERT(CString("123") == myList.GetAt(myList.FindIndex(2)));参考资料:msdn ...

相似回答