我正在尝试从以dfdf1kjdkf1
作为键的无序映射中接收值,其中某些字符串仅包含一个字符。我所有的输入都来自std::string
,我从中获取每个值并将其转换为char,然后使用
将其转换为字符串
std::stringstream
,根据documentation和this answer看来是有效的。
但是,当我这样做时,字符串会以\ x01开头(对应于值1)。这使得在地图上找不到该字符串。我的调试器还确认该字符串的大小为2,其值为“ \ x01H”。
为什么会这样,我该如何解决?
std::string result {1, character};
答案 0 :(得分:6)
与链接到的问题不同,您使用的是括号{}
,而不是括号()
。这使它成为一个初始化器列表,而不是您期望的构造器。