回答
你可以只初始化std::string
從std::vector<uint8_t>
獲得的序列:
std::string str(v->begin(), v->end());
沒有必要玩什麼花樣檢查std::vector<uint8_t>
是否爲空:如果是這樣,該範圍將空着。但是,您可能需要檢查指針是否爲v
爲空。以上要求它指向一個有效的對象。
如果我問你爲什麼離開這麼久,可以嗎? – 0x499602D2
@ 0x499602D2:你的意思是,爲什麼我暫時不回答問題?很簡單:我忙於在工作之外完成工作。現在我要忙於工作,除了工作之外還要工作。 –
我很驚訝這個答案被接受,因爲它不產生「代表其內容」的東西。如果你的矢量是「{1,2,3,4,5,6,7,8,9}」,那麼你的輸出將是一串不可顯示的字符! –
vector<uint8_t> *p;
string str(
p && !p->empty() ? &*p->begin() : NULL,
p && !p->empty() ? &*p->begin() + p->size() : NULL);
沒有必要使用'empty()'向量來玩任何技巧:它們會返回一個有效的範圍,而'std :: string'有一個帶有一對輸入迭代器的構造函數。 –
@DietmarKühl:噢你是對的,我有這樣做的習慣,因爲我有時會編譯一箇舊的STL實現,它沒有模板超載,完全忘了。 – Mehrdad
是的,舊的RogueWave實現仍然作爲Sun Studio的默認標準C++庫發佈,我猜。如果我不得不使用它,我實際上會使用'std :: copy(v-> begin(),v-> end(),std :: back_inserter(str));'。 –
對於那些誰想要轉換完成後一個字符串聲明,你可以使用的std :: string ::分配(),例如:
std::string str;
std::vector<uint8_t> v;
str.assign(v.begin(), v.end());
- 1. 將uint8轉換爲字符串
- 2. 如何將uint8 []轉換爲字符串?
- 3. 將矢量轉換爲字符串
- 4. vhdl:將矢量轉換爲字符串
- 5. 字符串轉換爲數字矢量
- 6. 如何將矢量字符串轉換爲簡單字符串
- 7. 矢量將字符串轉換爲逗號字符串?
- 8. 快速從UInt8轉換爲字符串
- 9. 字符串轉換爲矢量
- 10. 如何將帶有字符串的矢量轉換爲數字?
- 11. 將矢量轉換爲字符串並拆分爲JSP的字符串
- 12. 把字符串轉換爲矢量賦予空字符串
- 13. 如何將字符串轉換爲目標c中的uint8 []?
- 14. 將字符串轉換爲Java中的矢量
- 15. 將字符串數組轉換爲矢量的最佳方法?
- 16. 將矢量轉換爲c中的字符串
- 17. 將字符串矢量轉換爲分配聲明的右值
- 18. 如何將矢量轉換爲java中的字符串?
- 19. 如何將uint8數組轉換爲base64編碼字符串?
- 20. 將字符串轉換爲UnsafeMutablePointer <UInt8> Swift
- 21. 將字符串轉換爲配對矢量?
- 22. 如何將字符串矢量轉換爲標題案例
- 23. 將矢量<int>轉換爲字符串
- 24. 如何在Matlab中將矢量轉換爲字符串
- 25. 將elisp事件字符串/矢量轉換爲EVENT對象
- 26. Matlab,如何將整數字符串轉換爲矢量?
- 27. 如何將字符串轉換爲矢量
- 28. C++將矢量項目轉換爲單個字符串錯誤?
- 29. 將Java矢量元素轉換爲字符串
- 30. 將字符串[]轉換爲矢量<String>
你應該已經知道從向量長度 - >尺寸()。它內部是否有非ascii數據? – Duck
這是所有的ASCII數據。 –