【发布时间】:2021-02-15 10:38:41
【问题描述】:
如何从 unordered_map 中删除矢量元素
std::unordered_map<std::string stdstrID, std::vector<std::string>> controlTags;
我将有多个值作为给定键名,并希望从向量列表中删除键名的给定值。
void Sum_TagControl::Remove_Tag(std::string stdstrControlID , std::string stdstrName) {
for (auto tagData : controlTags[stdstrControlID]) {
if (tagData == stdstrName) {
// remove this text element from the vector list.
}
}
}
【问题讨论】:
-
如果键
stdstrControlID中尚不存在空向量,您是否打算在controlTags中自动创建一个空向量?因为这就是这段代码要做的事情。只是好奇。 -
@WhozCraig 我确实创建了它。
-
if (controlTags.find(stdstrControlID) == controlTags.end()) { controlTags[stdstrControlID] = std::vector<:string>(); // 使用空向量初始化键 }
-
密钥是
std::strings ?std::unordered_map<std::string stdstrID, ...看起来不对。请发帖minimal reproducible example -
除了
stdstr看起来像一些糟糕的匈牙利符号。