Muszę posortować listę stringów w formacie gg:mm (0-24h). Zupełnie nie wiem jak się do tego zabrać. Jakieś pomysły torgi?
Jak porównać wybrany element listy z następnym?
Ostatnio zmieniony przez Rzulf : 25-05-2015, 19:12
int compare(string s1, string s2)
{
for(int i = 0; i < s1.length(); i ++)
{
if(s1[i] != s2[i]) return s1[i] > s2[i] ? 1 : -1;
}
return 0;
}
Ostatnio zmieniony przez Absherr : 25-05-2015, 19:14
int zamiana;
wsk = head;
do
{
zamiana = 0;
while (wsk != NULL)//nie wychodzi z tej petli
{
if (compare(wsk->get_godzina_odjazdu(), wsk->nast->get_godzina_odjazdu()))
{
zamiana = zamiana + 1;
schowek = wsk;
wsk = wsk->nast;
wsk->nast = schowek;
}
}
} while (zamiana != 0);
Ostatnio zmieniony przez Rzulf : 25-05-2015, 19:26
Ostatnio zmieniony przez 2cztery7 : 25-05-2015, 19:55
do
{
zamiana = 0;
wsk = head;
while (wsk->nast != NULL)
{
if (compare(wsk->get_godzina_odjazdu(), wsk->nast->get_godzina_odjazdu()))
{
zamiana++;
temp = wsk->nast;
wsk->nast = wsk;
wsk = temp;
}
wsk = wsk->nast;
}
} while (zamiana != 0);
#include <iostream>
#include <vector>
#include <algorithm>
class Foo
{
public:
Foo(std::string&& str_) :
str(std::move(str_))
{}
bool operator<(const Foo& other) const
{
// to sobie dopisz
// np.: godzian * 60 + minuty, i to porownaj do other.
return str < other.str;
}
std::string getString()
{
return str;
}
private:
std::string str;
};
int main() {
std::vector<Foo> v;
v.push_back(Foo("2"));
v.push_back(Foo("3"));
v.push_back(Foo("1"));
std::sort(v.begin(), v.end());
for (auto x : v)
std::cout << x.getString() << std::endl;
return 0;
}
Ostatnio zmieniony przez szulak : 26-05-2015, 13:28
Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)
Zakładki