我試圖代碼相反的動作這樣的:如何使用std :: copy讀取任意數量的值?
std::ostream outs; // properly initialized of course
std::set<int> my_set; // ditto
outs << my_set.size();
std::copy(my_set.begin(), my_set.end(), std::ostream_iterator<int>(outs));
它應該是這樣的:
std::istream ins;
std::set<int>::size_type size;
ins >> size;
std::copy(std::istream_iterator<int>(ins), std::istream_iterator<int>(ins) ???, std::inserter(my_set, my_set.end()));
但我堅持的「結束」迭代器 - 輸入interators能不使用std :: advance,也不能使用兩個源碼相同的流...
有沒有什麼優雅的方法來解決這個問題?當然,我可以使用循環,但也許有一些更好:)
呵呵,你說得對,它是一種懷疑和最重要的 - 它不會在二進制流:) – 2008-10-30 14:01:10