我該如何構建一個帶索引序列的std::array
或者依賴於順序索引的lambda?如何用索引序列構造一個std ::數組?
std::iota
和std::generate
似乎有關,但我不知道如何使用它們來構建std::array
,而不是應用它們在其上已建成一個(這是不可能的情況下,陣列ISN的元素類型'default-constructible)。
那種代碼Example我想幹:
#include <array>
class C
{
public:
C(int x, float f) : m_x{x}, m_f{f} {}
private:
int m_x;
float m_f;
};
int main()
{
std::array<int, 10> ar = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
std::array<C, 3> ar2 = {C{0, 1.0}, C{1, 1.0}, C{2, 1.0}};
return 0;
}
在構建'std :: array'的元素(通過索引或任何其他方法)之前,不可能對它進行迭代。您可以嘗試聚合初始化。 – Peter
一些代碼顯示你希望達到的目的。 – StoryTeller
@StoryTeller新增 – Danra