std::string 转化 Bool
时间: 2023-11-16 16:06:01 浏览: 39
std::string 转化为 Bool 可以使用以下方法:将字符串转换为小写字母,并检查是否等于“true”或“false”。如果是,则返回相应的布尔值;如果不是,则返回默认值。
```cpp
bool StringUtil::str_to_bool(const std::string& value, bool default_value) {
std::string lowercase_value = str_tolower(value);
if (lowercase_value == "true") {
return true;
} else if (lowercase_value == "false") {
return false;
} else {
return default_value;
}
}
```
相关问题
bool转为std::string
将bool类型转换为std::string可以使用以下方法:
1. 使用条件运算符(三元运算符):
```cpp
bool value = true;
std::string str = value ? "true" : "false";
```
这里的三元运算符会根据bool值的真假返回不同的字符串。
2. 使用std::to_string()函数:
```cpp
bool value = true;
std::string str = std::to_string(value);
```
std::to_string()函数可以将bool类型转换为对应的字符串。
3. 使用std::stringstream:
```cpp
#include <sstream>
bool value = true;
std::stringstream ss;
ss << std::boolalpha << value;
std::string str = ss.str();
```
这里使用std::stringstream将bool值写入流中,再通过ss.str()获取对应的字符串。
std::vector<std::string> 转 std::map<std::string, bool>
以下是将std::vector<std::string>转换为std::map<std::string, bool>的示例代码:
```cpp
#include <iostream>
#include <vector>
#include <map>
int main() {
std::vector<std::string> vec = {"apple", "banana", "orange"};
std::map<std::string, bool> mp;
for (const auto& str : vec) {
mp[str] = true;
}
for (const auto& [key, value] : mp) {
std::cout << key << ": " << value << std::endl;
}
return 0;
}
```
在上面的代码中,我们首先定义了一个std::vector<std::string>,然后定义了一个std::map<std::string, bool>。接下来,我们使用for循环遍历std::vector<std::string>中的每个元素,并将其插入到std::map<std::string, bool>中,将bool值设置为true。最后,我们使用另一个for循环遍历std::map<std::string, bool>,并输出每个键值对。