如何使用时间复杂度优于O(n ^ 2)的STL向量和STL算法进行左连接?

fsp*_*rit 4 c++ algorithm stl stl-algorithm

我有2个向量,包含,让我们说Person(姓名,姓氏等)对象.我想取一个向量(让它命名为"大")然后对于这个向量中的每个元素在第二个中找到对应的元素("小")并将一些数据从"小"向量元素合并到"大"向量元件.此操作与SQL术语中的左连接非常相似,但具有额外的数据合并.最简单的方法是进行2个循环,但这将导致O(n ^ 2)时间复杂度.我可以用STL算法做得更好吗?

Mar*_*ins 5

如果小向量进行排序,则可以通过扫描大向量获取合并部分的O(n log n),并使用binary_search查找小向量中的元素.