strings pair tuples stl
Rychle se naučte základní pojmy strun, párů a n-tic v STL.
V tomto kurzu získáme základní znalosti řetězců, párů a n-tic v STL, než skutečně přejdeme k podrobným a větším konceptům, jako jsou Iterátory, Algoritmy a Kontejnery.
Přestože řetězce jsou používány stejným způsobem jako v obecném jazyce C ++, stojí za to o nich diskutovat z pohledu STL. Můžeme si představit řetězce jako sekvenční kontejner znaků. Také když se zabýváme třídami šablon v STL, je zcela nezbytné, abychom znali koncept PAIR a TUPLE s ohledem na STL.
=> Podívejte se na výukové návody do hloubky C ++ zde.
Co se naučíte:
Řetězce v STL
Řetězce v STL podporují formát ASCII i formát Unicode (širokoúhlý znak).
STL podporuje dva typy řetězců:
# 1) řetězec: Toto je řetězec formátu ASCII a pro zahrnutí tohoto typu řetězcových objektů do programu musíme do našeho programu zahrnout soubor string.h.
#include
# 2) Wstring: Toto je řetězec se širokými znaky. V programování MFC tomu říkáme CString. Chcete-li do našeho programu zahrnout objekty wstring, zahrneme soubor xstring.
#include
Ať už ASCII nebo Unicode, řetězce v STL podporují různé metody právě tak, jak to dělají ostatní kontejnery STL.
Některé z metod podporovaných objektem řetězce jsou:
- začít() : Vrátit iterátor na začátku.
- konec() : Vrátit iterátor na konci.
- vložit() : Vložit do řetězce.
- vymazat() : Vymazat znaky z řetězce.
- velikost() : Vrátí délku řetězce.
- prázdný() : Vyprázdněte obsah řetězce.
Kromě těchto metod uvedených výše jsme již v našich dřívějších řetězcích v C ++ tutoriálech pokryli metody třídy řetězců.
Pojďme napsat jednoduchý program, který předvede řetězce STL.
bezplatná aplikace pro časovou kartu pro iPhone a Android
#include #include using namespace std; int main() { string str1; str1.insert(str1.end(),'W'); str1.insert(str1.end(),'O'); str1.insert(str1.end(),'R'); str1.insert(str1.end(),'L'); str1.insert(str1.end(),'D'); for (string::const_iterator it = str1.begin(); it != str1.end(); ++it) { cout << *it; } int len = str1.size(); cout<<'
Length of string:'< Výstup:
SVĚT
Délka provázku: 5
Ve výše uvedeném kódu, jak jsme viděli, deklarujeme řetězcový objekt str1 a poté pomocí metody insert přidáváme znaky jeden po druhém na konec řetězce. Pak pomocí iteračního objektu zobrazíme řetězec.
Dále vytvoříme délku řetězce pomocí metody size. Jedná se o jednoduchý program, který slouží pouze k demonstraci řetězců.
PÁR V STL
Třída PAIR v STL se hodí při programování asociativních kontejnerů. PAIR je třída šablon, která seskupuje dvě hodnoty stejných nebo různých datových typů.
Obecná syntaxe je:
pair pair1, pair2;
Výše uvedený řádek kódu vytváří dva páry, tj. Pair1 a pair2. Oba tyto páry mají první objekt typu T1 a druhý objekt typu T2.
T1 je první člen a T2 je druhý člen z pair1 a pair2.
Následují metody podporované třídou PAIR:
- Provozovatel (=): Přiřaďte hodnoty dvojici.
- swap: Zamění obsah páru.
- make_pair (): Vytvořte a vraťte pár, který má objekty definované v seznamu parametrů.
- Operátoři (==,! =,>,<, = ) : Porovná dva páry lexikograficky.
Napíšeme základní program, který ukazuje využití těchto funkcí v kódu.
#include using namespace std; int main () { pair pair1, pair3; pair pair2; pair1 = make_pair(1, 2); pair2 = make_pair(1, 'SoftwareTestingHelp'); pair3 = make_pair(2, 4); cout<< '
Pair1 First member: '< Výstup:
Pair1 První člen: 1
Pair2 Druhý člen: SoftwareTestingHelp
Páry nejsou stejné
Ve výše uvedeném programu vytvoříme vždy dva páry typu integer a další pár typu integer a string. Dále pomocí funkce „make_pair“ přiřadíme každému páru hodnoty.
Dále porovnáme pair1 a pair2 pomocí operátoru „==“ a zkontrolujeme, zda jsou stejné nebo ne. Tento program demonstruje základní fungování třídy PAIR.
Tice v STL
Koncept Tuple je rozšířením Pair. V páru můžeme kombinovat dva heterogenní objekty, zatímco v n-tice můžeme kombinovat tři heterogenní objekty.
Obecná syntaxe n-tice je:
tupletuple1;
Stejně jako pár i n-tice podporuje podobné funkce a některé další funkce.
Jsou uvedeny níže:
- Stavitel: Postavit novou n-tici.
- Tuple_element: Vrátí typ prvku n-tice.
- make_tuple (): Vytvoří a vrátí n-tici, která má prvky popsané v seznamu parametrů.
- Operátoři (==,! =,>,<, = ): Lexikograficky srovnává dva páry.
- Provozovatel (=): Přiřazení hodnoty n-tici.
- swap: Prohodit hodnotu dvou n-tic.
- Kravata: Spojte hodnoty n-tice s jejími referencemi.
Podívejme se na některé z těchto funkcí v programu, abychom viděli jejich fungování.
#include #include using namespace std; int main () { tuple tuple1; tuple tuple2; tuple1 = make_tuple(1, 2,3); tuple2 = make_tuple(1,'Hello', 'C++ Tuples'); int id; string str1, str2; tie(id, str1, str2) = tuple2; cout << id <<' '<< str1 <<' '<< str2; return 0; }
Výstup:
jak zobrazit soubor eps
1 Hello C ++ Tuples
Ve výše uvedeném kódu, abychom demonstrovali n-tice, vytvoříme dvě n-tice. První n-tice n-tice1 se skládá ze tří celočíselných hodnot. Druhá n-tice, tj. N-tice2, se skládá z jedné celočíselné hodnoty a dvou řetězcových hodnot.
Dále přiřadíme oběma n-ticím hodnoty pomocí funkce „make_tuple“. Potom pomocí volání funkce „tie“ spojíme nebo přiřadíme hodnoty z tuple2 na id a dva řetězce.
Nakonec tyto hodnoty vydáme. Výstup ukazuje hodnoty z tuple2, které jsme přiřadili id a dvěma řetězcům.
Závěr
V tomto výukovém programu jsme tedy stručně diskutovali o řetězcích, dvojicích a n-tici použitých v STL. Vzhledem k tomu, že operace s řetězci jsou podobné obecným C ++, můžeme na těchto řetězcích také provozovat iterátory.
Konstrukce párů a n-tic se hodí při programování kontejnerů STL, zejména asociativních kontejnerů.
V našem nadcházejícím kurzu se podrobně seznámíme s algoritmy a iterátory, než přejdeme na skutečné programování STL pomocí STL.
=> Navštivte zde a prohlédněte si sérii školení C ++ pro všechny.
Doporučené čtení