第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在C+中將整個(gè)文件讀入STD:String的最佳方法是什么?

在C+中將整個(gè)文件讀入STD:String的最佳方法是什么?

C++
繁星coding 2019-06-16 13:31:37
在C+中將整個(gè)文件讀入STD:String的最佳方法是什么?如何將文件讀入std::string,即一次閱讀整個(gè)文件?調(diào)用方應(yīng)指定文本或二進(jìn)制模式。該解決方案應(yīng)符合標(biāo)準(zhǔn),便攜和高效。它不應(yīng)該不必要地復(fù)制字符串的數(shù)據(jù),并且應(yīng)該避免在讀取字符串時(shí)重新分配內(nèi)存。這樣做的一種方法是統(tǒng)計(jì)文件大小,調(diào)整std::string和fread()進(jìn)入std::string氏const_cast<char*>()愛(ài)德data()..這需要std::string它的數(shù)據(jù)是連續(xù)的,這是標(biāo)準(zhǔn)所不需要的,但是對(duì)于所有已知的實(shí)現(xiàn)似乎都是如此。更糟糕的是,如果文件是以文本模式讀取的,則std::string其大小可能不等于文件的大小。一個(gè)完全正確、符合標(biāo)準(zhǔn)和可移植的解決方案可以使用std::ifstream氏rdbuf()變成std::ostringstream從那里變成一個(gè)std::string..但是,這可能會(huì)復(fù)制字符串?dāng)?shù)據(jù)和/或不必要地重新分配內(nèi)存。所有相關(guān)的標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn)是否都足夠聰明,以避免所有不必要的開銷?還有別的辦法嗎?我是否錯(cuò)過(guò)了一些已經(jīng)提供了所需功能的隱藏的Boost函數(shù)?請(qǐng)給出你的建議如何實(shí)施。void slurp(std::string& data, bool is_binary)考慮到上述討論。
查看完整描述

3 回答

  • 3 回答
  • 0 關(guān)注
  • 1002 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)