【发布时间】:2017-10-25 13:41:12
【问题描述】:
我正在尝试使用向量将某些数据的 x 和 y 坐标存储在我的向量中。我认为以下方法可行,但事实并非如此。我花了很多时间寻找希望让它工作但徒劳无功。我感谢任何帮助。
class A {
public:
A(size_t x, size_t y); //ctor
};
如果我想创建一个类型为 A 类的向量,那么 2D,为什么是
std::vector<A> vec(10); not working?
void count(size_t x, size_t y) {
vec.at(x,y);
}
ERROR: error: no matching function for call to ‘std::vector<Board>::at(size_t, size_t&)
note: candidate expects 1 argument, 2 provided
既然 A 类的构造函数有 2 个变量,那么@t 我的 A 类型向量是否也应该采用 2 个变量? 如果不是,那么获取 A 类二维向量的正确方法是什么,以便我可以在 x,y 处调用 .at() 函数并获取其中存储的任何内容?
【问题讨论】:
-
std::vector需要包含的类项的默认构造函数。 -
你可以只拥有一个
std::pair的向量,而不是自己滚动。 -
向量必须是 A 类型,这将如何与 std::pair 一起使用? std::vector<:pair>> 不是对,并且 std::vector<:pair a>> vec2;需要两对(x,y),对吧?
-
@InfoGirl 我的印象是你只是一组
size_t变量的向量?std::vector<std::pair<size_t, size_t>> vec;. -
还有
vec.at(x,y);当心,逗号操作符不是你想的那样。