-6

重複を破棄して、ファイルから配列に数値を読み取ろうとしています。たとえば、次の番号がファイルにあるとします。

41 254 14 145 244 220 254 34 135 14 34 25

34という数字はファイルに2回出現しますが、配列に1回だけ保存したいと思います。どうすればいいですか?

(修正されましたが、より適切な用語は64ビットのUnsigned intだと思います)(255を超える数値を使用していました)

4

1 に答える 1

1
vector<int64_t> v;
copy(istream_iterator<int64_t>(cin), istream_iterator<int64_t>(), back_inserter(v)); 
set<int64_t> s;
vector<int64_t> ov; ov.reserve(v.size());
for( auto i = v.begin(); i != v.end(); ++i ) {
  if ( s.insert(v[i]).second ) 
     ov.push_back(v[i]);
}
// ov contains only unique numbers in the same order as the original input file.
于 2012-08-05T23:54:36.733 に答える