【发布时间】:2014-04-18 14:38:57
【问题描述】:
我有一个充满集合的向量,我正在使用这段代码在向量中查找一个 int:
for(int j = 0; j <= vector.size(); ++j){
if(vector[j].find(find) != vector[j].end())
std::cout << "FOUND: " << propagator << "\n";
}
}
这将在找到'find'时输出,无论如何返回该集合在向量中的位置
例如,如果 find = 5,并且我的向量包含元素:
[0] 2 3
[1] 4 5
无论如何我可以返回位置 1 的集合,最终我想从数组中删除整个集合
我一直在用
for(int j = 0; j <= vector.size(); ++j){
if(vector[j].find(find) != vector[j].end())
vector.erase (vector.begin()+j);
}
【问题讨论】:
-
您已经拥有该职位 -
j -
我不明白。你说你有一个集合向量,你在向量中搜索一个 int 。此外,将您的
for语句切换为for(size_t j = 0; j <= vector.size(); ++j)以使警告无效。 -
你能提供一个用例吗?也许不同的容器会更好地满足您的需求
-
@MrDuk 用于单元子句算法,取一个CNF格式的文件。所以会有 x 子句(在这个例子中进入向量)和每个元素内的 y 变量