簡體   English   中英

C++ ValueError bitset::_M_copy_from_ptr 當 string 和 bitset 大小正確時

[英]C++ ValueError bitset::_M_copy_from_ptr when string and bitset are correct size

我有一個字符串應該代表一個 32 位 integer,所以我正在創建一個位集來打印位:

std::string str = rocksDBSlice.ToString();
std::cout << str.length() << std::endl;
std::bitset<32> bits(str);
std::cout << bits.to_string() << std::endl;

但在運行時我得到:

4
ValueError bitset::_M_copy_from_ptr

如果字符串長度為 4,為什么 bitset 會拋出?

帶有字符串參數的std::bitset的構造函數期望字符串僅包含01 可能您的字符串包含類似a而不是1100001的值。 因此,如果要將輸入字符串的 4 個字節的 32 位放入bitset中,則必須先將字符串轉換為 32 個 1 和 0 的序列。

暫無
暫無

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

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