<vector> jak poprawnie użyć funkcji erase() dla std::vector *
Ostatnio zmodyfikowano 2014-08-30 22:51
fokusx Temat założony przez niniejszego użytkownika |
<vector> jak poprawnie użyć funkcji erase() dla std::vector * » 2014-08-30 21:09:41 #include <vector> void main() { std::vector < int > tmp[ 3 ]; tmp[ 0 ].push_back( 10 ); tmp[ 0 ].push_back( 11 ); tmp[ 0 ].push_back( 12 ); tmp[ 1 ].push_back( 20 ); tmp[ 2 ].push_back( 30 ); BYTE i = 2; tmp[ 0 ].erase( 0, i ); }
Jak poprawnie użyć funkcji erase (int, BYTE) w tym przypadku? |
|
Monika90 |
» 2014-08-30 21:30:10 A co chcesz usunąć? |
|
1aam2am1 |
» 2014-08-30 21:58:08 |
|
fokusx Temat założony przez niniejszego użytkownika |
» 2014-08-30 22:04:00 @UP & 2xUP z tablicy tmp[0] chcę usunąć przedział od 1 do i. Treść błędu: error C2664: 'std::_Vector_iterator<_Myvec> std::vector<_Ty>::erase(std::_Vector_const_iterator<_Myvec>,std::_Vector_const_iterator<_Myvec>)' : cannot convert parameter 1 from 'int' to 'std::_Vector_const_iterator<_Myvec>' 1> with 1> [ 1> _Myvec=std::_Vector_val<int,std::allocator<int>>, 1> _Ty=int 1> ] 1> and 1> [ 1> _Myvec=std::_Vector_val<int,std::allocator<int>> 1> ] 1> No constructor could take the source type, or constructor overload resolution was ambiguous
|
|
Monika90 |
» 2014-08-30 22:11:48 od 1 do i włącznie z itmp[ 0 ].erase( tmp[ 0 ].begin() + 1, tmp[ 0 ].begin() + i + 1 );
|
|
1aam2am1 |
» 2014-08-30 22:13:06 for( int j = 0; j < i; ++j ) { tab[ 0 ].erase( tab[ 0 ].begin(), tab[ 0 ].begin() ); }
|
|
akwes |
» 2014-08-30 22:36:12 @1aam2am1, aż nie wiem od którego powodu zacząć, mówiąc dlaczego Twoje rozwiązanie jest złe :P |
|
1aam2am1 |
» 2014-08-30 22:41:25 Wiem że jest złe ale erase przyjmuje iteratory do elementów tablicy. |
|
« 1 » 2 |