array aus tuple füllen
-
Hallo,
ich habe Schwierigkeiten, inzwischen bin ich mir gar nicht mehr sicher, wo überhaupt nicht. Jedenfalls habe ich hier Schwierigkeiten, ein Array aus tuple zu füllen. Ich hoffe, die Nennung der Fehlermeldung ist in diesem Fall überflüssig, weil der Fehler vom Fortgeschrittenen wie vom Compiler im Gegensatz zu mir sofort erkannt werden müsste.
#include <array> #include <tuple> typedef std::tuple <int, int, int> i3tuple; int main() { std::array <i3tuple, 3> arr_t; arr_t.at(0) = {0,0,0}; //falsch arr_t = { {0,0,0}, {1,1,1}, {2,2,2} }; //falsch }
LG
-
Man kann
std::tuple
nichtlist-initialize
n. Schreib stattdessen also:arr_t.at(0) = i3tuple{ 0,0,0 }; arr_t = { i3tuple{ 0,0,0 }, i3tuple{ 1,1,1 }, i3tuple{ 2,2,2 } };
Alternativ kannst du auch
std::make_tuple
verwenden. Wenn deintuple
jedoch immer nur aus ein und demselben Typ besteht (hierint
), dann würde ich an deiner Stelle eher zustd::array<std::array<int, 3>, 3>
oderstd::array<int, 3 * 3>
greifen.LG
-
Fytch schrieb:
Alternativ kannst du auch
std::make_tuple
verwenden.LG
Ah, danke. Den hatte ich doch ganz vergessen. In diesem Fall war dies mein Fehler. Danke auch für die anderen Anmerkungen, der tuple wird später aber verschiedene Typen beinhalten.