我有两个向量,A和B. A包含基于某个主键的表行形式的数据,比如row_id。向量B还包含一些基于相同密钥的另一个表的行形式的数据。现在我的要求是当两个向量A&的row_id时,仅从向量A中选择那些数据。 B匹配并继续其他功能。如何实现这一目标?
答案 0 :(得分:1)
如果A& B数据如下:
struct X{
int row_id;
int data;
}
然后你可以使用std::set_intersection,如下面的
这里C将是具有来自A& A的数据的向量。 B row_id
匹配的地方
std::vector<X> A,B,C;
//Sort A,B based on row_id use std::sort with custom comparator
std::set_intersection (A.begin(), A.end(), B.begin(), B.end()
std::back_inserter(C),
[]( const X& a, const X& b) {
return a.row_id < b.row_id
});