SFML 访问 std::vector 内的数组
SFML accessing array inside std::vector
在class中我有:
class A{
A(){};
std::vector<sf::Vertex[2]> lines{ 5 };
};
而且我不知何故需要访问 std::vector 中所有线对象的 sf::Vertex 0 和 1。 SFML 文档在行中声明:
sf::Vertex line[] =
{
sf::Vertex(sf::Vector2f(10, 10)),
sf::Vertex(sf::Vector2f(150, 150))
};
我尝试了很多东西,但语法就是不行,来自:
std::vector行{{顶点(100,100),顶点(300,300)},...};
对此:
A(){
lines[0]->sf::Vertex[0] = (100,100);
...};
但就是行不通。正确的语法是什么?
数组不是向量(或任何其他标准容器)的有效元素类型。它不满足可擦除的要求。您可以改为使用将数组作为成员的 class。标准库有一个用于此类数组包装器的模板:std::vector<std::array<sf::Vertex, 2>>
.
在class中我有:
class A{
A(){};
std::vector<sf::Vertex[2]> lines{ 5 };
};
而且我不知何故需要访问 std::vector 中所有线对象的 sf::Vertex 0 和 1。 SFML 文档在行中声明:
sf::Vertex line[] =
{
sf::Vertex(sf::Vector2f(10, 10)),
sf::Vertex(sf::Vector2f(150, 150))
};
我尝试了很多东西,但语法就是不行,来自:
std::vector行{{顶点(100,100),顶点(300,300)},...}; 对此:
A(){
lines[0]->sf::Vertex[0] = (100,100);
...};
但就是行不通。正确的语法是什么?
数组不是向量(或任何其他标准容器)的有效元素类型。它不满足可擦除的要求。您可以改为使用将数组作为成员的 class。标准库有一个用于此类数组包装器的模板:std::vector<std::array<sf::Vertex, 2>>
.