Usuwanie elementów z wektora/listy

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?

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;
}
0

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

0

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

0

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

2

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

0

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

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