gpt4 book ai didi

c++ - 关于STL容器

转载 作者:太空宇宙 更新时间:2023-11-04 11:32:23 26 4
gpt4 key购买 nike

我在 C++ STL 容器映射中遇到问题。

class c1 {

map<int , vector<entity>> mapobject //where entity is a structure

c1{

entity er;
er.entityId = 1;
er.nameId = 1;

std::vector<entity> record;
record.push_back(er);

mapobject.insert(std::pair<int,std::vector<entity>>(1,record));

}
}

我在上面的代码中面临的问题是,在构造函数之外,所有结构字段都包含垃圾值。类级别的变量-映射不会深度复制内容吗?

请帮帮我

--库马尔

最佳答案

您需要为entity 实现一个复制构造函数:

class entity
{
public:
entity(const entity& other)
{}
};

默认情况下,C++ 不会深度复制对象。您的代码中还有一些语法错误:

class c1 {

map<int , vector<entity>> mapobject; //missing semicolon

c1 () { //missing parameter list

entity er;
er.entityId = 1;
er.nameId = 1;

std::vector<entity> record;
record.push_back(er);

mapobject.insert(std::pair<int,std::vector<entity>>(1,record));

}
}; //missing semicolon

关于c++ - 关于STL容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10276215/

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