Tworzenie listy

0

Czesc,

Co robię tutaj źle?


	List<int> list1 = new List<int>() { 1, 2, 2, 2, 3, 4, 4, 4, 5, 8, 19 };
	List<int> list2 = new List<int>() { 2, 2, 4, 4, 4, 4, 10, 16, 20 };
	List<int> resultList1 = new List<int>();
	List<int> resultList2 = new List<int>();

Kompilator wyrzuca mi błędy syntax.

2

Gdzie przeczytałeś, że w ten sposób powinieneś to robić? Bo chyba próbujesz na ślepo przenosić javowo-podobny syntax do C++.
std::list<int> list1 = {1, 2, 3};

1

Zanim się zacznie coś robić dobrze jest poczytać dokumentację:
http://www.cplusplus.com/reference/list/list/list/

2

Swoją drogą - zazwyczaj chcesz używać std::vector zamiast std::list ze względu na to, że vector jest ciągłym odcinkiem pamięci. Lista po pamięci może być rozrzucona stąd dostęp do kolejnych elementów jest bardzo nie cache-friendly.

0

Tak, dostęp do std::list jest znacznie utrudniony niż w przypadku std::vector. Chciałem po prostu znaleźć liczbę wystąpień tych samych liczb w paru zbiorach, więc myślałem, że najlepiej będzie użyć do tego std::list , tak dla odmiany.

Czyli mówiąc krótko i zwięźle - std::vector jest najlepsza opcją do... wszystkiego.:

1

Do prawie wszystkiego. Domyślnie powinieneś używać vectora. Jeśli uważasz, że w jakimś konkretnym, specjalnym przypadku lista się sprawdzi lepiej - możesz próbować to benchmarkowac. Ale w ogólności - dynamiczna tablica w C++ to vector.

1

A jak vector nie sprawuje się dobrze, to może -- jeśli trzeba manipulować z przodu sekwencji -- warto jeszcze rozważyć dequea.

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