Wpis z mikrobloga

Jak można zadeklarować wektor a wektorów x, w którym każdy z wektorów x przechowuje 3 wartości (coś jak wektor par, tyle że są 3 zmienne po których chcę sortować zamiast 2)?
Uznałem, że skoro dla wektora par pracuje:
vector > a
to dla 3 wartości zadziała coś takiego:
vector > a
jednak nie działa.
Wyrzuca mi taki błąd:
error: wrong number of template arguments (3, should be 2) Ktoś ma pomysł co mogę tu naprawić?
#programowanie
  • 30
@ajcomorpdezrporuewneclawonliptneilk: Wektor nie przechowuje konkretnej i ustalonej liczby wartości (tzn. w przeciwieństwie do pair przechowuje jeden typ danych, stąd nie wymaga deklarowania typu dla każdego elementu z osobna - to by było bez sensu, o vector jest w zamierzeniu dynamicznie alokowany i rozszerza się/skraca w zależności od zajętości). Musisz sam sobie stworzyć taką strukturę. Ewentualnie możesz zrobić po prostu vector> i nigdy nie wpisywać tam więcej niż 3.
@ajcomorpdezrporuewneclawonliptneilk: przecież wektor trzyma obiekty pojedynczej klasy.
Tu nie ma magii, wystarczy zobaczyć jak jest zaimplementowany vector.

pair jest kontenerem na pary właśnie, jakbyś chciał kontener na więcej elementów, to albo robisz sobie strukturę/klasę z tyloma memberami (polami), albo bawisz się w opakowanie danych w tuple (C++11).

http://en.cppreference.com/w/cpp/container/vector
http://en.cppreference.com/w/cpp/utility/tuple/tuple#Example
http://en.cppreference.com/w/cpp/utility/pair/pair#Example
@ilmash: No w sumie stąd już samemu wymyślę algorytm sortujący to do końca. Dzięki @Marmite: @o-o_i: @patrolez: @KrzaQ2: Wam za pomoc. Spróbuję rozkminić co do mnie pisaliście, ale szczęśliwie poradziłem sobie bez dziwnych struktur. ( ͡° ͜ʖ ͡°) Wektor dwuwymiarowy 3 x k i sortowanie po pierwszym wierszu a później sortowanie po drugim jeżeli w pierwszym pomiędzy dwoma kolejnymi jest równość wystarczy.
Spróbuję rozkminić co do mnie pisaliście, ale szczęśliwie poradziłem sobie bez dziwnych struktur. ( ͡° ͜ʖ ͡°) Wektor dwuwymiarowy 3 x k i sortowanie po pierwszym wierszu a później sortowanie po drugim jeżeli w pierwszym pomiędzy dwoma kolejnymi jest równość wystarczy.


@ajcomorpdezrporuewneclawonliptneilk: omujborze. Wracaj do kursu, serio. "dziwne struktury" to podstawa podstaw. Do porównania std::tie: http://melpon.org/wandbox/permlink/AH8j3AIsWhSxGpT2

@wykop: spieprzyliście wykopcode :(