簡體   English   中英

在 std::vector 構造函數中使用“{}”作為結束迭代器

[英]Use of '{}' as end iterator in std::vector constructor

讀取文件並將其作為字節數組放入向量的一種方法是:

std::ifstream input(filePath, std::ios::binary);
std::vector<unsigned char> barray(std::istreambuf_iterator<char>(input), {});

據我了解,上述代碼片段中用於std::vector的構造函數是

template< class InputIt >
vector( InputIt first, InputIt last,
        const Allocator& alloc = Allocator() );

因此, {}對應於last

{}到底是什么? 它是否像一個空/空迭代器?

因此,{} 對應於最后一個。
{} 到底是什么? 它是否像一個空/空迭代器?

這是一個默認構造的 object 類型的std::istreambuf_iterator<char>

std::vector<unsigned char> barray(std::istreambuf_iterator<char>(input), {});

是相同的

std::vector<unsigned char> barray{std::istreambuf_iterator<char>{input},
                                  std::istreambuf_iterator<char>{}};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM