gpt4 book ai didi

C++,使用 vector 我可以 push_back({someNum1,someNum2}) 吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:42 25 4
gpt4 key购买 nike

我有 vector :

vector<int[2]> storeInventory; //storeInventory[INDEX#]{ITEMNUM, QUANTITY}

我想使用 push_back() 方法将新数组添加到库存 vector 。类似这样的东西:

const int ORANGE = 100001;
const int GRAPE = 100002

storeInventory.push_back({GRAPE,24});
storeInventory.push_back{ORANGE, 30};

但是,当我尝试使用上面的语法时,出现错误 Error: excpeted an expression。我正在尝试的是不可能的,还是我只是以错误的方式去做?

最佳答案

内置数组不是AssignableCopyConstructible。这违反了容器元素要求(至少对于 C++03 及更早版本而言)。换句话说,你不能有 std::vectorint[2]元素。您必须包装数组类型以满足上述要求。

正如已经建议的那样,std::array是 C++11 中包装器类型的完美候选者。或者你可以这样做

struct Int2 {
int a[2];
};

并使用std::vector<Int2> .

关于C++,使用 vector<int[2]> 我可以 push_back({someNum1,someNum2}) 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13651740/

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