0

我有两个向量,A 和 B。A 包含基于某个主键的表行形式的数据,比如 row_id。向量 B 还包含一些数据,也以基于相同键的其他表的行的形式。现在我的要求是当向量 A 和 B 的 row_id 匹配时仅从向量 A 中选择那些数据并继续执行其他功能。如何做到这一点?

4

1 回答 1

1

如果 A & B 数据是这样的:

struct X{
int row_id;
int data;
}

然后你可能可以使用 std::set_intersection如下

这里 C 将是具有来自 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 
                });
于 2013-09-01T09:28:50.320 回答