Ist es möglich, eine std::vector
in einer einzigen Zeile mit Lambda-Funktionen zu initialisieren?Initialisiere std :: Vektor von std :: unique_ptr mit lambdas
ich die folgenden Aliase bin mit:
using UI = std::unique_ptr<int>;
using VUI = std::vector<UI>;
Bisher bin ich in der Lage, Folgendes zu tun:
UI init[] = { UI(new int(0)), UI(new int(0)), UI(new int(0)) };
VUI vec { std::make_move_iterator(std::begin(init)), std::make_move_iterator(std::end(init)) };
VUI vec;
for (unsigned i=0; i<3; ++i)
vec.emplace_back(UI(new int(0)));
Ich möchte so etwas wie dieses aber in einer einzigen Zeile tun, vorzugsweise unter Verwendung von Lambda.
Was ist der Zweck der einzelnen Zeile, abgesehen von der Verschleierung der Lesbarkeit Ihres Codes? –
Sie können jedes vorstellbare Konstrukt in einer einzigen Zeile schreiben (außer mehreren Makro-Direktiven können Sie nur eine einzelne Makro-Direktive in einer Zeile haben). – user2079303