[英]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
的構造函數期望字符串僅包含0
和1
。 可能您的字符串包含類似a
而不是1100001
的值。 因此,如果要將輸入字符串的 4 個字節的 32 位放入bitset
中,則必須先將字符串轉換為 32 個 1 和 0 的序列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.