Usuwanie elementów z wektora/listy

Odpowiedz Nowy wątek
2015-01-03 22:03
0
#include <list>
#include <algorithm>
 
class T {
public:
  T() {}
  T& operator=(const T&) = delete;
};
 
int main() {
  std::list<T> l{T()};
  l.erase(std::remove_if(l.begin(), l.end(),
    [](const T& t){/*...*/}),
    l.end());
  return 0;
} 

Da się usunąć obiekt bez operatora przypisania z listy/wektora?

Pozostało 580 znaków

2015-01-03 22:10
1

Jak najbardziej:

#include <list>
#include <algorithm>
 
class T {
public:
  T() {}
  T& operator=(const T&) = delete;
};
 
int main() {
  std::list<T> l{T()};
  l.remove_if([](const T& t){ ... });
  return 0;
}

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2015-01-03 22:18
0

Ok faktycznie mogłem lepiej przejrzeć dokumentacje. Widzę, że to tylko dla listy, bo wektor nie ma takiej metody, tak?

Pozostało 580 znaków

2015-01-03 22:19
0

Wektorowi nie jest potrzebna, może to zrobić poprzez normalny remove_if


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2015-01-03 22:27
0

To co jest nie tak z tym kodem?
http://ideone.com/xtan2p

Pozostało 580 znaków

2015-01-03 22:32

A jak ty sobie wyobrażasz usunięcie ze środka wektora bez operatora przypisania?


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2015-01-03 22:40
0

Ok tak myślałem, tylko chciałem się upewnić. Dzięki za pomoc.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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