兩個指標佇列的元素一模一樣,在一個佇列中洗掉了指標元素,另一個佇列中的怎么處理啊?最后q2中的指標沒有變成NULL!
class A
{
public:
A(int a)
{
id = a;
}
int id = 0;
};
void main()
{
deque<A*>q1;
deque<A*>q2;
A* a = new A(3);
A* b = new A(4);
q1.push_back(a);
q1.push_back(b);
q2.push_back(a);
q2.push_back(b);
for (auto &p : q1)
{
delete p;
p = NULL;
}
for (auto &p : q2)
{
if (p == NULL)
{
printf("NULL\r\n");
}
else
{
printf("%d\r\n", p->id);
}
}
}
uj5u.com熱心網友回復:
stl容器建議直接存放物件uj5u.com熱心網友回復:
記錄索引位置,對應的洗掉uj5u.com熱心網友回復:
現在的問題不是如何洗掉存放的元素。
而是我在操作一個佇列的時候,例如操作q2,不知道它存放的指標還有效不有效。如果無效,仍然直接使用就會記憶體崩潰。
uj5u.com熱心網友回復:
insert / delete / for三處要加鎖才行
uj5u.com熱心網友回復:
用智能指標存轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/40503.html
標籤:基礎類
