sortowanie vectora
Ostatnio zmodyfikowano 2014-03-27 01:57
Adik80 |
» 2014-03-10 13:41:29 Mozesz np przekazac do funkcji przez warosc: bool cmp( std::string s1, std::string s2 ) { transform( s1.begin(), s1.end(), s1.begin(),::tolower ); transform( s2.begin(), s2.end(), s2.begin(),::tolower ); return s1 < s2; }
...
std::sort( tab.begin(), tab.end(), cmp );
|
|
adamek339 Temat założony przez niniejszego użytkownika |
» 2014-03-10 17:49:20 Działa :) Wielkie dzięki za pomoc wszystkim. |
|
adamek339 Temat założony przez niniejszego użytkownika |
» 2014-03-26 13:58:56 A mógłby mi ktoś wytłumaczyć rolę "::" przed funkcją tolower?
transform( s1.begin(), s1.end(), s1.begin(),::tolower ); |
|
michal11 |
» 2014-03-26 17:18:58 Po 1. to z tego co napisałeś nie wynika, ze to funkcja. Po 2. Najprawdopodobniej czegoś tam brakuje bo "::" to operator zakresu. |
|
Monika90 |
» 2014-03-26 17:38:34 Po 1. to z tego co napisałeś nie wynika, ze to funkcja. |
ale ze standardu wynika, że to funkcja Po 2. Najprawdopodobniej czegoś tam brakuje bo "::" to operator zakresu. |
No właśnie, to jest operator zakresu. Co w tym przypadku oznacza odwołanie do nazwy tolower pochodzącej z globalnej przestrzeni nazw. A powinno to być std::tolower, ponieważ #include <cctype> nie gwarantuje, że tolower będzie w globalnej przestrzeni nazw, gwarantuje tylko, że będzie w std. |
|
michal11 |
» 2014-03-27 01:57:31 @Monika90 Ja wiem, ze to funkcja ale z tego co jest napisane wcale to nie wynika tylko oto mi chodzi o błąd zapisu. |
|
1 « 2 » |