Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

usuwanie wiersza z wektora 2D

Ostatnio zmodyfikowano 2021-01-26 15:24
Autor Wiadomość
lewus
Temat założony przez niniejszego użytkownika
usuwanie wiersza z wektora 2D
» 2021-01-26 02:00:20
Witam
Nie mogę usunąć wiersza jeśli znajduje się w nim konkretna liczba, np. 0. W zamieszczonym kodzie program usuwa tylko niektóre wiersze z 0.
C/C++
#include <iostream>
#include <vector>
using namespace std;

int main()
{
   
vector < vector < int >>
   
of =
   
{
        {
0, 4, 7 },
       
{ 0, 4, 5 },
       
{ 2, 4, 6 },
       
{ 0, 4, 8 },
       
{ 0, 1, 2 },
       
{ 0, 3, 6 },
       
{ 2, 5, 8 },
       
{ 6, 7, 8 },
   
};
   
   
   
for( int i = 0; i < of.size(); i++ )
   
   
for( int j = 0; j < of[ i ].size(); j++ )
       
 if( of[ i ][ j ] == 0 ) of.erase( of.begin() + i );
   
}

 
P-178027
DejaVu
» 2021-01-26 11:01:45
Drugą pętlę należy przerwać po usunięciu elementu (break).
P-178029
lewus
Temat założony przez niniejszego użytkownika
» 2021-01-26 11:36:27
Czy przerwanie ma wyglądać tak, bo działa jak bez break'a?
C/C++
#include <iostream>
#include <vector>
using namespace std;

int main()
{
   
vector < vector < int >>
   
of =
   
{
        {
0, 4, 7 },
       
{ 0, 4, 5 },
       
{ 2, 4, 6 },
       
{ 0, 4, 8 },
       
{ 0, 1, 2 },
       
{ 0, 3, 6 },
       
{ 2, 5, 8 },
       
{ 6, 7, 8 },
   
};
   
   
   
for( int i = 0; i < of.size(); i++ )
   
   
{
       
for( int j = 0; j < of[ i ].size(); j++ )
       
{
           
if( of[ i ][ j ] == 0 )
           
{
               
of.erase( of.begin() + i );
               
break;
           
}
        }
       
    }
   
}
P-178031
nanoant20
» 2021-01-26 15:15:03
C/C++
//usuwanie wierszy, w ktorych wystepuje 0
for( unsigned int i = 0; i < of.size(); ++i )
{
   
for( unsigned int j = 0; j < of[ i ].size(); )
   
{
       
if( of[ i ][ j ] == 0 )
       
{
           
of.erase( of.begin() + i );
           
--i;
           
break;
       
} else {
           
++j;
       
}
    }
}
P-178032
lewus
Temat założony przez niniejszego użytkownika
» 2021-01-26 15:24:49
dzięki za pomoc
P-178033
« 1 »
  Strona 1 z 1