Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

sortowanie vectora

Ostatnio zmodyfikowano 2014-03-27 01:57
Autor Wiadomość
adamek339
Temat założony przez niniejszego użytkownika
sortowanie vectora
» 2014-03-09 16:49:50
Hej:) Mam do napisanie taki program:  Do pojemnika vector wczytaj interakcyjnie kilka-kilkanaście wierszy tekstu i posortuj je alfabetycznie ignorując wielkość liter (małe-duże); zapisz to w pliku. Napisałem już prawie cały program. Do sortowania vectora używam funkcji sort(), jednak nie wiem jak poradzić sobie z ignorowaniem wielkości liter. Wie ktoś może jak to rozwiązać? Z góry dziękuje za pomoc.

C/C++
#include <iostream>
#include<vector>
#include<string>
#include <iterator>
#include<algorithm>
#include <fstream>
using namespace std;

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main( int argc, char ** argv ) {
    int z;
    ofstream plik;
   
   
    vector < string > tab;
    string napis;
   
   
    // wypelnienie pojemnika tab
   
   
    do {
        cout << "Podaj wiersz:" << endl;
        //cin>>napis;
        getline( cin, napis );
       
        tab.push_back( napis );
       
    } while( napis != " " );
   
   
    vector < string >::iterator w;
   
   
    cout << "Wektor przed sortowaniem: " << endl;
   
    for( w = tab.begin(); w != tab.end(); w++ ) {
       
        cout << * w << endl;
    }
   
   
    // sortowanie
    sort( tab.begin(), tab.end() );
   
   
   
   
   
   
    cout << "Wektor po sortowaniu :" << endl;
   
    for( w = tab.begin(); w != tab.end(); w++ ) {
       
        cout << * w << endl;
        plik <<* w << endl;
    }
   
    plik.open( "wektor.txt" ); // otwarcie pliku do zapisu
   
    if( plik.good() == true ) {
       
        for( w = tab.begin(); w != tab.end(); w++ ) {
           
            plik <<* w << endl;
        }
       
    } else cout << "Uszkodzony plik:" << endl;
   
    plik.close();
    cin >> z;
    return 0;
   
}
P-105931
Marekszuwarek
» 2014-03-09 16:58:30
Skoro Program odbiera wszystko to może ni wkierowuj do funkcji sort liter wielkich czyli najpierw posortuj wielkie osobno-małe osobno później Wielkie zostaw i małe posortuj  wpakuj to do chara i użyj biblioteki fstream. Nazwij plik jak ci się chce (nie wiem co to wektor :P) A potem na koniec wcisnij wielkie w charai zapisz tak jak napisałem wczesniej.
P-105933
adamek339
Temat założony przez niniejszego użytkownika
» 2014-03-09 17:53:37
A możesz trochę doprecyzować? :)
P-105936
pekfos
» 2014-03-09 18:08:41
3. argument std::sort(), lub zmieniaj wszystkie duże litery na małe przed sortowaniem (std::transform() + std::tolower())
P-105937
adamek339
Temat założony przez niniejszego użytkownika
» 2014-03-09 18:33:49
Próbowałem tej drugiej opcji jednak później trzeba by zamienić znowu litery do pierwotnych rozmiarów z wczytywania. Możesz napisać coś więcej o trzecim argumencie funkcji sort?
P-105941
MrPoxipol
» 2014-03-09 19:48:29
Niestandardowa funkcja porównująca, możesz o niej przeczytać w dokumentacji.
P-105947
michal11
» 2014-03-09 19:49:55
P-105948
adamek339
Temat założony przez niniejszego użytkownika
» 2014-03-10 12:24:07
A wie ktos jak użyć funkcji transform w taki sposób aby zmienić wielkość liter na małe tylko podczas sortowania?
P-105981
« 1 » 2
  Strona 1 z 2 Następna strona