我的代码现在:
#include <algorithm>
#include <iterator>
#include <string>
#include <vector>
using namespace std;
void FindIntersection(vector<vector<string>>& data)
{
while (data.size() > 1)
{
auto lastVec = data.size() - 1;
vector<string> result;
std::set_intersection(data[0].begin(), data[0].end(),
data[lastVec].begin(), data[lastVec].end(),
std::back_inserter(result));
data[0] = result;
data.resize(lastVec);
}
}
这会将输入缩小为单个向量,然后使用data [0]进行访问。代码有效,但我不喜欢赋值data[0] = result;
,因为向量复制,尤其是string
的复制并不是最有效的。有任何想法如何改进此代码?
P.S。我知道这种优化现在没有现实世界的好处,但我很想知道它能获得多少好处。