std::string 转化为 char *
时间: 2023-03-28 22:03:45 浏览: 105
可以使用 std::string 的 c_str() 函数将其转化为 char *。例如:
std::string str = "Hello World";
char *cstr = str.c_str();
这样就可以将 std::string 转化为 char *。
相关问题
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C2664 “unsigned __int64 std::_Tree<std::_Tmap_traits<_Kty,_Ty,_Pr,_Alloc,false>>::count(const std::basic_string<char,std::char_traits<char>,std::allocator<char>> &) const”: 无法将参数 1 从“char”转换为“const std::basic_string<char,std::char_traits<char>,std::allocator<char>> &” Project6 C:\Users\dell\source\repos\Project6\Project6\源.cpp 67
这个错误是因为你尝试将一个char类型的值传递给函数,但是该函数期望接收一个std::basic_string参数。你需要将传递的参数转换为std::basic_string类型。
你可以尝试使用std::string构造函数进行转换,例如:
```
char myChar = 'a';
std::string myString(1, myChar);
unsigned __int64 count = myMap.count(myString);
```
这将创建一个std::string对象,其中包含一个字符。然后,你可以将该字符串传递给count()函数。
blueprint.set_attribute('vehicle_physics_control', physics_control) Boost.Python.ArgumentError: Python argument types in ActorBlueprint.set_attribute(ActorBlueprint, str, VehiclePhysicsControl) did not match C++ signature: set_attribute(class carla::client::ActorBlueprint {lvalue}, class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >, class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)
这个错误出现的原因是`set_attribute`方法的参数类型与C++签名不匹配。你需要将`physics_control`对象转换为Python字符串类型的JSON格式,然后再传递给`set_attribute`方法。可以使用`json.dumps`函数将对象转换为JSON字符串,如下所示:
```python
import json
npc_speed = npc_speeds[i]
npc_acceleration = npc_accelerations[i]
physics_control = carla.VehiclePhysicsControl()
physics_control.max_speed = npc_speed / 3.6 # convert km/h to m/s
physics_control.max_acceleration = npc_acceleration
physics_control_json = json.dumps(physics_control.as_dict())
blueprint.set_attribute('vehicle_physics_control', physics_control_json)
```
这里我们使用`as_dict`方法将`VehiclePhysicsControl`对象转换为字典,然后使用`json.dumps`将其转换为JSON格式的字符串。最后,我们将其传递给`set_attribute`方法,以应用到蓝图上。
阅读全文