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 samych plików nagłówkowych, jej konfiguracja jest bardzo prosta: wystarczy pouczyć kompilator, gdzie ma szukać nagłówków. Więcej informacji na temat konfiguracji biblioteki znajdziesz w ramce Szybki Start. Pierwszy przykładZanim rozważymy szczegółowo możliwości biblioteki Boost String Algorithms, spójrzmy na krótki, prosty przykład jej użycia (patrz: Listing 2). Zadanie, które ma zrealizować nasz przykład, jest bardzo proste: chcemy usunąć białe znaki z początku i końca napisu, a następnie stworzyć nowy napis będący kopią poprzedniego, z tą różnicą, że wszystkie litery z oryginalnego napisu zamienione będą na małe. Boost String Algorithms pozwala zrealizować to zadanie za pomocą dwóch prostych, intuicyjnych funkcji. Morał z tego przykładu jest następujący: nie mając pod ręką odpowiedniej biblioteki, musielibyśmy funkcje do przycinania i konwersji zaimplementować sami. Niby prosta rzecz, aczkolwiek nie do końca. Jeśli tworzony przez nas kod miałby być kodem produkcyjnym, to należałoby poważnie zastanowić się nad takimi aspektami jak: poprawność (szczegółowe rozważenie wszystkich przypadków użycia), wydajność, rozszerzalność, obsługa błędów itd. Trzeba by zapewne zaprojektować i zaimplementować zestaw testów modułowych. Krótko mówiąc, trywialne zdanie, które chcielibyśmy rozwiązać w kilka sekund, urasta nam nagle do rozmiarów tworzenia własnej biblioteki - co już trywialnym zadaniem nie jest. Dla odmiany, Boost String Algorithms daje nam dokładnie to, czego potrzebujemy: proste, dobrze przetestowane, wydajne implementacje operacji na napisach. Wystarczy dołączyć właściwy nagłówek (#include <boost/algorithm/string.hpp>) i po kłopocie. Aż chciałoby się zacytować motto użytkowników języka Perl: niechaj proste rzeczy pozostaną proste.
Adres www: http://www.czasopisma.org

Powiązane strony:

Blog ITtechnology.info to miejsce, w którym każdy znajdzie zbiór praktycznych porad z różnych dziedzin i... Na łamach serwisu www.drukarniaskarbowa.pl odnajdziemy ofertę renomowanej na naszym polskim rynku drukarni s...
Robienie stron internetowych to proces raczej długi oraz żmudny. Wszystko opiera się bowiem o język, w jak... Zdecydowana większość dostępnych aktualnie narzędzi do zdalnej administracji systemem linux ma interfejs ...
Najczęstszym sposobem wyszukiwania odpowiedzi na nurtujące nas pytania wbrew pozorom nie jest najbliższa na... Firma Direktpoint zajmuje się kreacją i produkcją dla nowych mediów. Realizujemy cele wyznaczone przez kli...

Inne strony:

Szukasz kogoś, kto produkuje strony internetowe a Kraków jest jego miejscem pracy? Dobrze trafiłeś! Robimy... Katalog stron w Internecie to zajmująca sprawa, którą musi zainteresować się każdy, kto szuka promocji w...
Telepresence pozwala firmom przenieść tradycyjny model biznesowy na płaszczyznę/zakład produkcyjny opart... Dysponujemy swoje zaplecze techniczne, dzięki któremu nie musimy korzystać z usług podwykonawców co znacz...
Darmowe Wróżby. Wróżby za sms.. Na Naszej stronie dostaniesz wiele popularnych wróżb, jak wróżby andrz... Forex to największy na świecie rynek walutowy. Dzięki popularności sieci stał się osiągalny nie tylko d...