|
1
10
您发布的代码将始终执行
|
|
|
2
5
|
|
|
3
1
callSet.end()的值是否也为0xbaadf00d?
我在VS2008中运行了这个示例代码,一切都按预期运行。find函数返回了一个指向原始值的迭代器。
|
|
|
4
0
仅仅
您提供的代码片段,我保证您会发现它执行时没有问题。这个问题几乎可以肯定是由于程序中其他地方发生的内存分配错误造成的,例如引用未初始化的指针或指向已被初始化的对象的指针
你熟悉C++容器如何管理它们的对象吗?他们不会为你删除指针。在可能的情况下,使用对象容器而不是指向对象的指针总是更安全的。(有时需要指针容器,特别是当您希望容器存储来自单个类层次结构的不同类型的对象时。) |
|
5
0
一个简单的错误是,你应该测试不等于结束。
但您也应该注意,您不是在比较实际的Cell值,而是在比较指向Cell对象的指针(这可能是您想要的,也可能不是)。通常在C++中,你不倾向于将指针存储在容器中,因为指针没有隐含的所有权,但有时这是可以的。
|
|
|
Julia · 矢量中相加为总和S的值的数量 3 年前 |
|
|
C_Rod · 在模板方法中确定STL容器中项目的数据类型 4 年前 |
|
|
quantumwell · 将空向量放入std::map() 8 年前 |
|
|
OutOfBound · 对未初始化内存使用算法的优点 8 年前 |
|
|
DarthRubik · 在使用列表删除之后,迭代器如何不无效 8 年前 |