Folgender Code macht das gleiche wie deiner, nur legt es die "Hilfsobjekte" implizit an und deletet sie schon nach dem konstruktoraufruf.
Die .clear() aufrufe blrauchst du NICHT machen. Der destruktor kümmert sich schon um's Aufräumen, und der wird beim Zerstören des Objektes aufgerufen (am ende des scopes bei nicht dynamischen Objekten, wie hier. also beim } ).
Code:
#include <vector>
#include <iostream>
using namespace std;
int main( void ) {
int input[] = { 10, 13851 };
vector< vector< vector< int > > > werte( 1, vector< vector< int > >( 1, vector< int >( input, input + 2 )));
/*
// oder:
vector< vector< vector< int > > > werte( 1, vector< vector< int > >( 1, vector< int >()));
werte[ 0 ][ 0 ].push_back( 10 );
werte[ 0 ][ 0 ].push_back( 13851 );
// oder:
vector< vector< vector< int > > > werte( 1, vector< vector< int > >( 1, vector< int >()));
vector< int > & ref = werte[ 0 ][ 0 ];
ref.push_back( 10 );
ref.push_back( 13851 );
*/
cout << werte[ 0 ][ 0 ][ 0 ] << endl
<< werte[ 0 ][ 0 ][ 1 ] << endl
<< werte[ 0 ][ 0 ].size() << endl;
return 0;
}
Lesezeichen