gpt4 book ai didi

c++ - 3维 vector 的交集/可行性控制

转载 作者:行者123 更新时间:2023-11-28 07:21:26 26 4
gpt4 key购买 nike

我有一个包含多个元组(元素)的 3 维 vector :

coverFeasible[d][y1].push_back(colIdx)

对于给定的 d 和 y1,我想检查是否有任何元素 (coverFeasible[d][y1][r1]) 也是 coverFeasible[d][y1'] 的元素,其中 y1' 是其余元素设置(y1 之外的所有其他人)。

更准确地说,我跟踪所有可能的可行性,其中第一个元素不是第二个元素(y1 的所有组合)。而且,我想对所有可能的 d 值进行此控制。

如果 coverFeasible[d][y1] 和 coverFeasible[d][y1'] 之间没有公共(public)元素,那么我想保留这个,并且我尝试在所有可行列表中获得最小的参数coverFeasible[d][y1].

我尝试了很多 for 循环。但是,结果与我想要的不匹配:

for (int d=1 ; d<=n; d++){
min_feasible_LB_cost[d]=1000; //A Large value
for (int y1=1; y1<= (qc)*(n)*(sp)*tt; y1++){ //Until all y1s are covered
for (int y2=y1+1; y2<= (qc)*(n)*(sp)*tt; y2++){
bool gotoMainLoop = false;
for (int r1=1; r1 <= coverFeasible[d][y1].size(); r1++){
for(int r2=1; r2<= coverFeasible[d][y2].size(); r2++){
if(coverFeasible[d][y1][r1]==coverFeasible[d][y2][r2])
gotoMainLoop = true;
else {if(lowerbound_totalcolCost[d][y2] <= min_feasible_LB_cost[d] )
min_feasible_LB_cost[d]=lowerbound_totalcolCost[d][y2];
else
min_feasible_LB_cost[d]=min_feasible_LB_cost[d];}}}
break;}
}
}

我可以尝试一些 vector 的交集,但是我不知道如何用二维 vector 来做。

我想听听您的建议,这会有所帮助。

最佳答案

我建议您使用 std::set 而不是 coverFeasible[d][y1] 的 vector ,然后您可以使用 set intersection from the std library.

关于c++ - 3维 vector 的交集/可行性控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19408016/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com