CList问题。

CList问题。,第1张

if(pos != NULL)

IntList.RemoveAt(pos)

else if(pos == NULL)

IntList.RemoveTail()

这几句写的有问题

当iTemp为50时候,pos指向的是10的位置,你把这个值给删除了,这时候你在使用这个pos其实就存在问题了,就是一个野指针

把 类里的迭代器声明去掉,在循环的位置在直接初始化并使用。

迭代器的申明也不对。

迭代器也是个对象,所以跟普通变量的申明一样的。

list<Student>::iterator its = list.begin()

这样就可以了。

放在某个DLG的头文件里

#pragma once

#include "afxcmn.h"

// MainDLG 对话框

class MainDLG : public CDialog

{

DECLARE_DYNAMIC(MainDLG)

public:

struct goods{

CString m_NO

int nSstyle

float fNumber

float fPrice

float fTotal

}

struct User{

CString m_Name

CString m_Tel

CList <goods ,goods>goodsList

}

CList <User,User>userList

public:

MainDLG(CWnd* pParent = NULL) // 标准构造函数

virtual ~MainDLG()

// 对话框数据

enum { IDD = IDD_DIALOG1 }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11841751.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存