c++ - 在向量问题的向量中擦除对象
问题描述
我正在尝试从本身包含在另一个向量中的向量中“擦除”一个元素。但是,要么我忘记了如何做到这一点,要么我错过了重点,或者有一个巨大的疏忽。无论我尝试什么,它总是会删除向量中的第一个元素。
void release_docking() {
int loop_R = (int)parent_cell->cells.size();
for (int i = 0; i < loop_R; i++) {
int loop_C = (int)parent_cell->cells[i].size();
for (int j = 0; j < loop_C; j++) {
if (parent_cell->cells[i][j] = this) {
parent_cell->cells[i].erase(parent_cell->cells[i].begin() + j);
if (parent_cell->cells[i].empty()) {
parent_cell->cells.erase(parent_cell->cells.begin() + i);
}
parent_cell = nullptr;
is.docked = false;
resize_cells(root_cell);
break;
}
}
}
}
解决方案
这条线
if (parent_cell->cells[i][j] = this) {
将分配this
和parent_cell->cells[i][j]
评估为真。
之后它将被删除。
那应该==
不是=
。
最近的编译器应该警告你这一点。确保警告已打开。
推荐阅读
- python - 基于相关 M2M 字段的排序查询集
- ios - 如何获取cancellation_date 字段?
- javascript - 如何调整导航栏中的表格?
- javascript - 我无法显示我的 json 元素 - React
- javascript - 如何在复选标记 svg 图像旁边精确对齐文本,以便将其用作优缺点?
- asp.net-mvc - 为字符串集合实现 IModelBinder
- python - 输入数据行作为python中的参数
- sql - 如何优化下面的sql查询
- javascript - 如何在活动嵌套手风琴部分上旋转箭头/雪佛龙/插入符号
- unit-testing - 测试条件时的 Mockito、TooManyActualInvocations Spek 框架