Tworzenie wektora - prośba o wytłumaczenie kodu

0
vector<double> hour { vector<double>(24,not_a_reading) };
vector<double> hour (24, not_a_reading);

Nie rozumiem zapisu z pierwszej linijki.
Jedno co mi chodzi po głowie to wektor wektorów ale chyba nie o to tutaj chodzi.

1

Pierwsza to zwykły move constructor, kompletnie tutaj zbędny.

0

Więc w obu linijkach tworzony jest taki sam wektor?

1

Sprawdźmy to!

vector<double> a { vector<double>(24, not_a_reading) };
vector<double> b (24, not_a_reading);

DBG(a == b);
a == b                                                      true

https://wandbox.org/permlink/aWu7pctN4PKp3a4H

0
const int not_a_reading = -7777;

struct Day {
	vector<double> hour (24, not_a_reading);
};



int main() {

	vector<double> hour(24, not_a_reading);
}

Gdy definiuję wektor w strukturze otrzymuje błędy, gdy zastosuje move constructor wszystko jest ok.
Jesteś w stanie wytłumaczyć mi to w jakiś prosty sposób? Tzn. co to jest ten cały move constructor.

1

Takie reguły języka, inicjalizacja w ciele klasy jest relatywnie nowa i wymaga uniform initalization lub znaku równości.

1 użytkowników online, w tym zalogowanych: 0, gości: 1