4

と言う 2 つのcharベクトルが{'G', 'K', 'A', 'L', 'P'}あり{'K', 'P', 'T', 'M'}ます。順序を維持しながら、これら2つのベクトルの違いを取得する必要があり{'G', 'A', 'L'}ます。

関数は認識してstd::set_differenceいますが、ベクトルをソートする必要があるため使用できません。C++ でこれを行う最適化された方法はありますか?

4

2 に答える 2

0

手動ソリューション:

std::vector<char> a{'G','K','A','L','P'};
std::vector<char> b{'K','P','T','M'};
std::vector<char> result;

for(auto const& item:a){
   if(std::find(std::begin(b),end(b),item)==std::end(b)){
       result.push_back(item)
   }
}
于 2016-02-12T12:59:29.403 に答える