FString i = TEXT("s"); FString LeftInfo = LeftinfoMap.Find(i) 这段程序为什么显示没有可行的构造函数
时间: 2024-02-25 08:56:03 浏览: 21
这段程序报错的原因可能是因为LeftinfoMap的类型与Find函数的返回值类型不匹配。Find函数返回的是一个指向FString类型的指针,需要使用*运算符来获取实际的FString对象。建议将LeftInfo的类型定义为FString*,并且在使用Find函数之前,确保LeftinfoMap已经被成功定义和初始化,例如:
```
TMap<FString, FString> LeftinfoMap;
FString i = TEXT("s");
FString* LeftInfo = LeftinfoMap.Find(i);
if (LeftInfo != nullptr) {
FString InfoValue = *LeftInfo;
// 对InfoValue进行处理
} else {
// 处理查找失败的情况
}
```
此外,如果报错信息给出了更具体的提示,您可以提供报错信息以便更好地解决问题。
相关问题
FString i = TEXT("s"); FString LeftInfo = LeftinfoMap.Find(i) 这段程序为什么报错
这段程序报错的原因可能是因为LeftinfoMap没有定义或者没有被初始化。在使用Find函数之前,需要确保LeftinfoMap已经被成功定义和初始化。另外,如果i在LeftinfoMap中不存在,则Find函数也会返回nullptr,需要确保程序能够处理这种情况。如果以上问题都没有出现,那么报错信息可能会给出更具体的提示,您可以提供报错信息以便更好地解决问题。
string s="abc"调用什么构造函数
在 C++ 中,字符串的类型是 `std::string`。当你使用 `std::string s = "abc";` 这样的语句时,编译器会调用 `std::string` 的带有 `const char*` 类型参数的构造函数,该构造函数将字符串常量 "abc" 转换为 `std::string` 类型的对象。具体来说,这个构造函数是这样定义的:
```cpp
basic_string( const CharT* s,
const Allocator& alloc = Allocator() );
```
其中,`CharT` 是字符串类型的元素类型,即 `char`;`s` 是指向要复制的字符串的指针;`alloc` 是用于分配存储空间的可选分配器对象,默认为默认分配器。
因此,`std::string s = "abc";` 调用的构造函数是 `std::string` 的带有 `const char*` 参数的构造函数。