gpt4 book ai didi

c++ - struct 中的 std::string - 复制/分配问题?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:57:15 27 4
gpt4 key购买 nike

假设我有一个包含 std::string 的结构,如下所示:

struct userdata{
int uid;
std::string username;
}

我是否需要创建一个复制构造函数或任何东西来从函数返回它或在 STL 容器中使用它?考虑这个函数:

userdata SomeClass::GetUserData(unsigned int uid)
{
//do error checking and other stuff...
//m_usermap is std::map<unsigned int, userdata>
return m_usermap[uid];
}

当我将 userdata 结构插入 std::map 时,会创建该结构的拷贝,对吧?是使用用户名字段的值创建了一个新的 std::string,还是发生了某种按位复制(这很糟糕)?同样,当我从 GetUserData 方法返回一个用户数据结构时,它是否有一个独立的字符串保存用户名,或者我是否需要定义一个复制构造函数并显式创建一个新字符串?

最佳答案

您不必做任何特别的事情。 C++(和 STL 的实现)将其定义为正常工作。

关于c++ - struct 中的 std::string - 复制/分配问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2009996/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com