मैं एसटीएल एल्गोरिदम का उपयोग करके यह कैसे करूं?copy_n या eof तक?
std::ifstream file(filename);
std::vector<unsigned char> buf;
for(auto file_it = std::istreambuf_iterator<char>(file); file_it != std::istreambuf_iterator<char>() && buf.size() < 2048; ++file_it)
buf.push_back(*file_it);
नोट buf.size() < 2048
।
उदा। यदि मैं निम्नलिखित करता हूं तो क्या होगा, और फ़ाइल 2048 बाइट से छोटी है?
std::copy_n(std::istreambuf_iterator<char>(file), 2048, std::back_inserter(buf));
फ़ाइल बड़ी होने पर क्या होता है? क्या बाकी इसे छोड़ दिया गया है या क्या आपको उस हिस्से की शुरुआत में एक पुनरावर्तक की आवश्यकता है जिसे अभी भी पढ़ा जा सकता है? – pmr
बाइट्स की आवश्यक संख्या पढ़ने के बाद ifstream को त्याग दिया जाता है। – ronag
यह एक एल्गोरिदम के बजाय एक अलग इटरेटर होने की संभावना को खोलता है। – pmr