我正在尝试将文件中的数字读入数组,丢弃重复项。例如,假设文件中有以下数字:
41 254 14 145 244 220 254 34 135 14 34 25
虽然数字 34 在文件中出现了两次,但我只想在数组中存储一次。我该怎么做?
(已修复,但我想更好的术语是 64 位无符号整数)(使用 255 以上的数字)
我正在尝试将文件中的数字读入数组,丢弃重复项。例如,假设文件中有以下数字:
41 254 14 145 244 220 254 34 135 14 34 25
虽然数字 34 在文件中出现了两次,但我只想在数组中存储一次。我该怎么做?
(已修复,但我想更好的术语是 64 位无符号整数)(使用 255 以上的数字)
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.