将所需数据从一个向量移动或复制到另一个向量

时间:2013-09-01 09:17:27

标签: c++

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

1 个答案:

答案 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 
                });