簡體   English   中英

讀取std :: vector中特定位置的數據<unsigned char>

[英]Read data in a specific position in a std::vector<unsigned char>

我有一個帶有二進制數據的std::vector<unsigned char>

我只是想在具有特定大小的特定位置讀取此向量。

我會這樣的功能:

myvector.read(PositionBegin, Size)
myvector.read(1200,3)

該功能可以從12001203讀取數據。

在C ++中有這樣的函數嗎?

我假設你想要另一個帶有范圍的std :: vector ...

這個鏈接提供了一個很好的答案: 從向量中提取子向量的最佳方法?

你的功能可能如下:

std::vector<unsigned char> readFromVector(const std::vector<unsigned char> &myVec,
        unsigned start, unsigned len)
{
    // Replaced T with unsigned char (you could/should templatize...)
    std::vector<unsigned char>::const_iterator first = myVec.begin() + start;
    std::vector<unsigned char>::const_iterator last = first + len;
    std::vector<unsigned char> newVec(first, last);
    return newVec;
}

為您的問題使用適當的標簽。

一個簡單的迭代器會引發你的向量:

for (i=0; i<myvector.size(); i++)
cout << " " << myvector.at(i);
cout << endl;

所以如果你想使用一個范圍,你只需要設置你的for循環約束

for (i=PositionBegin; i<PositionBegin+Size; i++)
cout << " " << myvector.at(i);
cout << endl;

如果您希望此函數將此函數輸出到另一個向量,而不是使用cout,則必須將其推送到新向量中。

mynewvector.push_back(myvector.at(i));

不要忘記,當你使用這個功能時,你必須使用以下類型:

vector<type> function()

最后:

return mynewvector;

閱讀載體: cplusplus

暫無
暫無

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

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