【发布时间】:2019-11-21 21:27:11
【问题描述】:
我正在使用 SFML 用 C++ 编写一个小项目,但遇到了一个问题。我想画几条线,我想在运行我的程序时改变它们的数量(我想要最多 50 条线)。所以我想,我会使用 std::vector,但我需要在每个 line 对象上调用非默认构造函数,而且我找不到比在循环中执行它更简单的方法(我什至不知道我是否应该无论如何都要这样做)。我试过这个:
std::vector<sf::VertexArray> lines(50, sf::VertexArray(2, sf::Lines));
但它不起作用。 (我可能错了,直到 C++ 11 才出现?)。 我问如何做这样的事情(也在调整矢量大小时)或者我应该找到另一种存储这些行的方法?我使用的是 sf::VertexArray,因为我真的需要一条线描述为 2 点,而不是矩形。
【问题讨论】:
-
“它不起作用”是什么意思?你得到什么错误?
-
你真的尝试过使用
std::vector<sf::VertexArray> lines(50, sf::VertexArray(2, sf::Lines));吗?除非sf::VertexArray不可复制,否则它应该可以正常工作。 -
下次用科学的方法。所以你的尝试没有奏效。是矢量的错吗?尝试使用简单的整数向量。有用?是的,所以问题出在您的 VertexArray ctor...然后您知道这与向量无关。这项技术将使您免于对正在发生的事情一无所知。 :)