所以我有9个字符串的这些集合,我将创建3个向量,每个向量包含这9个字符串中的3个。
我还创建了一个无序的multimap,其中每个字符串都是一个键,并且每个字符串都附加了两个值。这些值也是任何字符串。
现在我要在向量中插入一个字符串(让我们称之为X)。我需要程序做的是迭代其余的字符串(让我们调用这个新的潜在字符串Y),并检查Y是否不是无序多图中的键X的值。如果不是,则Y将插入与X相同的向量中。基本上,这是我想要的伪代码:
vector vec1; vec1.push_back(X); for(Y = all the remaining strings){ if(Y is not the value of key X){ // This is what I need to have a syntax for vec1.push_back(Y); } }
我建议你把multimap::equal_range
和std::none_of
结合起来
auto fun = [&x](const auto &val){ return x == val; };
const auto&[begin, end] = map.equal_range(x);
if( std::none_of(begin, end, fun) ) {
..........