struct NoteData { int type; double measurePosition; }; struct MeasureData { int beginTime; int sixteenths; vector note; } measure[6]; //6 tracks measure[0].at(3) = measure[0].at(11); //copies measure 11 to measure 3 in track 0 //then, this does nothing: NoteData newNote; measure[0].at(11).note.push_back(newNote);