Otwieramy sklep w sieci
Standardowe udogodnienia biblioteki języka C++, dedykowane przetwarzaniu napisów, pozostawiają wiele do życzenia. Wielu programistów uważa, że klasa std::string to jedna z większych wpadek twórców standardu tego języka. Szablon std::basic_string jest przykładem klasy o rozdmuchanym, niespójnym interfejsie, mało intuicyjnej w użyciu, udającej kontener STL, ale nie będącej nim do końca i nieelastycznej. Jeśli nie wierzysz, to spróbuj przy pomocy std::basic_string wykonać operację przycięcia zbędnych znaków (np. spacji) z początku i końca napisu (ang. trimming).
Oczywiście, da się to zrobić - po uprzednim zapoznaniu się z takimi metodami klasy std::string jak find_first_not_of, find_last_not_of oraz erase (patrz: Listing 1). Ale czy nie można by zrobić tego prościej…? A co w sytuacji, kiedy nasz napis reprezentowany jest jako wektor char’ów?
Zanim załamiesz ręce, poczekaj! Na szczęście - jest…
…światełko w tunelu……w postaci biblioteki Boost String Algorithms. Biblioteka ta oferuje uogólnione (ang. generic) implementacje algorytmów działających na napisach, których brakuje w bibliotece standardowej języka C++. Algorytmy te można sklasyfikować w ramach kilku podstawowych grup: operacje przycinania napisów (ang. trimming), operacje konwersji znaków (ang. case conversion) oraz funkcje służące do wyszukiwania, zamiany i usuwania ciągów znaków (ang. search, replace, erase).
Boost String Algorithms skonstruowana jest w sposób, który nie ogranicza jej do współpracy z jednym, z góry narzuconym typem kontenera (np. std::string). W kontekście tej biblioteki pojęcie napis oznacza sekwencję znaków przechowywanych w dowolnym kontenerze. Podobnie, pod pojęciem znak niekoniecznie muszą kryć się typy char i wchar_t.
Prezentowana biblioteka jest częścią pakietu Boost; jako że składa się ona z s
Oczywiście, da się to zrobić - po uprzednim zapoznaniu się z takimi metodami klasy std::string jak find_first_not_of, find_last_not_of oraz erase (patrz: Listing 1). Ale czy nie można by zrobić tego prościej…? A co w sytuacji, kiedy nasz napis reprezentowany jest jako wektor char’ów?
Zanim załamiesz ręce, poczekaj! Na szczęście - jest…
…światełko w tunelu……w postaci biblioteki Boost String Algorithms. Biblioteka ta oferuje uogólnione (ang. generic) implementacje algorytmów działających na napisach, których brakuje w bibliotece standardowej języka C++. Algorytmy te można sklasyfikować w ramach kilku podstawowych grup: operacje przycinania napisów (ang. trimming), operacje konwersji znaków (ang. case conversion) oraz funkcje służące do wyszukiwania, zamiany i usuwania ciągów znaków (ang. search, replace, erase).
Boost String Algorithms skonstruowana jest w sposób, który nie ogranicza jej do współpracy z jednym, z góry narzuconym typem kontenera (np. std::string). W kontekście tej biblioteki pojęcie napis oznacza sekwencję znaków przechowywanych w dowolnym kontenerze. Podobnie, pod pojęciem znak niekoniecznie muszą kryć się typy char i wchar_t.
Prezentowana biblioteka jest częścią pakietu Boost; jako że składa się ona z s
Adres www: http://216.29.39.35



