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