gpt4 book ai didi

C++:由整数键控的对象的映射或 vector ?

转载 作者:太空狗 更新时间:2023-10-29 23:34:00 25 4
gpt4 key购买 nike

我要存储一些由各种数字键控的对象。大多数数字没有对象,有些有 1,有些有多个。

std::map<int, std::vector<MyObject>> myObjects;
// or...
std::vector<std::vector<MyObject>> myObjects;

std::vector<MyObject> GetObjectsForNumber( int number )
{
// how best to do this?

if ( -check if there is a vector for the number- )
{
return myObjects[number];
// or...
return myObjects.at(number);
}
else
{
// return empty vector?
}
}

我应该使用 map 还是 vector ,我应该如何实现功能?

最佳答案

您正在寻找的可能是 multimap ,请参阅 http://www.cplusplus.com/reference/stl/multimap/ .

但是您应该指出您的目标到底是什么 - 内存效率、性能?另外,值在键上的“分布”如何?如果这是一个重要的决定,您应该制作原型(prototype)。

P.S.: 不要写

std::vector<std::vector<MyObject>> myObjects;

而是

std::vector<std::vector<MyObject> > myObjects;  //note the space between the > >

否则 GCC 会将 >> 解释为运算符>>。

关于C++:由整数键控的对象的映射或 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6917686/

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