gpt4 book ai didi

C++ 多维 vector 追加

转载 作者:行者123 更新时间:2023-11-28 00:27:00 25 4
gpt4 key购买 nike

假设我有一个二维 vector :

std::vector<std::vector<int>> world;

我想实现这样的目标:

world[0][0] = x;
world[0][1] = y;
etc

所以我想出了这个函数:

int Controller::AddBody(SDL_Rect RECT, SDL_Color COLOR)
{
world[world.size() + 1].push_back(RECT.x);
world[world.size() + 1].push_back(RECT.y);
world[world.size() + 1].push_back(RECT.w);
world[world.size() + 1].push_back(RECT.h);
world[world.size() + 1].push_back(COLOR.r);
world[world.size() + 1].push_back(COLOR.g);
world[world.size() + 1].push_back(COLOR.b);
world[world.size() + 1].push_back(COLOR.a);

return world.size() + 1;
}

然而这会产生一个异常(exception)。我不明白为什么?

最佳答案

这是使用新的 emplace 来接受答案的更现代的方法。 C++11 中添加的方法和 initializer list :

int Controller::AddBody(SDL_Rect RECT, SDL_Color COLOR)
{
world.emplace_back(std::vector<int>{
RECT.x,
RECT.y,
RECT.w,
RECT.h,
COLOR.r,
COLOR.g,
COLOR.b,
COLOR.a
});
return world.size() + 1;
}

Live demo

关于C++ 多维 vector 追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24580616/

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