C ++ All-in-One pro figurky Cheat Sheet pro figuríny

John Paul Mueller

C ++ se v průběhu let stále zlepšuje, protože k tomu lidé stále přispívají a hledají nové způsoby, jak s ním pracovat. C ++ najdete v úžasné řadě aplikací, protože funguje všude - od desktopových a mobilních aplikací až po vestavěné aplikace a další typy systémů.



Protože C ++ je tak neuvěřitelně flexibilní, lidé k němu stále přicházejí jako k nejlepšímu řešení pro mnoho obecných programovacích potřeb a také některé specifické potřeby.



Programování v C ++

© andriano.cz / Shutterstock.com

Programovací paradigmata C ++

V C ++ můžete programovat více než jedním způsobem. Většina lidí si myslí, že jste omezeni pouze na používání procedurálních nebo objektově orientovaných programovacích technik. Pokud se tam však zastavíte, přijdete o polovinu zábavy při práci s C ++. Následující seznam popisuje různá dnes běžně používaná paradigmata programování v C ++:



  • Rozkazovací způsob: Imperativní programování vyžaduje postupný přístup k provedení úkolu. Vývojář poskytuje příkazy, které přesně popisují, jak provést úkol od začátku do konce. Během procesu provádění příkazů kód také upravuje stav aplikace, který zahrnuje data aplikace. Kód běží od začátku do konce. Nezbytná aplikace úzce napodobuje počítačový hardware, který provádí strojový kód. Strojový kód je nejnižší sada pokynů, které můžete vytvořit, a je napodobována v časných jazycích, například v assembleru.
  • Procesní: Procedurální programování implementuje imperativní programování, ale přidává funkce, jako jsou bloky kódu a postupy pro rozbití kódu. Kompilátor nebo tlumočník stále končí produkcí strojového kódu, který běží krok za krokem, ale použití postupů usnadňuje vývojáři sledovat kód a pochopit, jak to funguje. Mnoho procedurálních jazyků poskytuje režim demontáže, ve kterém můžete vidět korespondenci mezi jazykem vyšší úrovně a podkladovým assemblerem.
  • Objektově orientovaný: Procesní paradigma usnadňuje čtení kódu. Vztah mezi kódem a základním hardwarem však stále ztěžuje vztah k tomu, co kód dělá, se skutečným světem. Objektově orientované paradigma používá koncept objektů ke skrytí kódu, ale co je důležitější, k usnadnění modelování reálného světa. Vývojář vytvoří objekty kódu, které napodobují objekty reálného světa, které emulují. Mezi tyto objekty patří vlastnosti, metody a události, které umožňují, aby se objekt choval určitým způsobem.
  • Funkční: Funkční programování má poněkud odlišné cíle a přístupy, než používají jiná paradigmata. Cíle definují, o co se paradigma funkčního programování pokouší při vytváření přístupů používaných jazyky, které jej podporují. Cíle však neurčují konkrétní implementaci; to je v kompetenci jednotlivých jazyků. Hlavní rozdíl mezi paradigmatem funkčního programování a jinými paradigmy je v tom, že funkční programy k vyjádření myšlenek používají spíše matematické funkce než výroky. Tento rozdíl znamená, že namísto psaní přesné sady kroků k vyřešení problému používáte matematické funkce a nemusíte si dělat starosti s tím, jak jazyk daný úkol plní.
  • Deklarativní: Funkční programování ve skutečnosti implementuje deklarativní paradigma programování, ale tato dvě paradigmata jsou samostatná. Deklarativní programovací paradigma také podporují další paradigmata, jako je logické programování implementované jazykem Prolog. Krátký pohled na deklarativní programování spočívá v tom, že provádí následující: popisuje, co by měl kód dělat, nikoli jak to dělat; definuje funkce, které jsou referenční transparentní (bez vedlejších účinků); a poskytuje jasnou korespondenci s matematickou logikou.

10 běžných chyb v C ++

V kódování je možné dělat chyby, i když o nich nevíte. Nedostatek znalostí o novém požadavku na programování je stále chyba, ale ten, který byste mohli najít jen velmi těžko. Přestože mnoho programátorů v C ++ podniká opatření k prevenci chyb, chyby stále proklouzávají. Tento seznam deseti běžných chyb při psaní kódu C ++ může pomoci novým i zkušeným programátorům:

  • Selhání deklarace proměnné
  • Použití nesprávných velkých a malých písmen; například jste zadali Main, když jste mysleli main
  • Zaměstnávání jednoho znaménka rovnosti (=), když jste měli použít dva (==), buď v příkazu if, nebo v pro
  • Vynechání #include nebo pomocí namespace std;
  • Po upgradu na novější verzi C ++ se spoléháme na starší programovací techniky, jazykové funkce nebo volání knihovny
  • Zapomenout zavolat new a stejně použít ukazatel
  • Vynechání slova public: ve vašich třídách, takže se všechno ukázalo jako soukromé
  • Vytváření nejednoznačných odkazů na třídy při práci s více knihovnami, aby váš kód nakonec používal nesprávnou knihovnu
  • Ponechání závorek při volání funkce, která nemá žádné parametry
  • Přeskočení středníku, pravděpodobně na konci deklarace třídy, nebo jiná nezbytná interpunkce

Přehled standardních kategorií knihoven

Standardní knihovna je obrovská a neustále se zvětšuje. Nikdo nemůže zvládnout tak velkou možnost kódování, přesto se vývojáři musí v tom orientovat. Nejlepší způsob, jak začít, je rozbít standardní knihovnu na menší kousky. Funkce standardní knihovny můžete kategorizovat mnoha způsoby. Jedním z nejběžnějších přístupů je použití následujících kategorií:

  • Algoritmy: Provádí manipulace s daty, jako je nahrazování, lokalizace nebo třídění informací
  • Atomové operace (C ++ 11 a vyšší): Umožňuje konstrukci bloku kódu, který se spouští jako jedna souběžná entita bez použití uzamykacích mechanismů
  • C Kompatibilita: Poskytuje vám přístup k funkcím, které byly dodány s původním jazykem C.
  • Koncepty (C ++ 20 a vyšší): Poskytuje predikáty, které vyjadřují očekávání obecného algoritmu prostřednictvím konceptů; Pomocí konceptu formálně dokumentujete omezení na šabloně k vynucení určitého chování.
  • Kontejnery: Umožňuje ukládání různých druhů dat pomocí specifického přístupu; Například fronty a deques jsou druhy kontejnerů.
  • Coroutines (C ++ 20 a vyšší): Umožňuje funkci pozastavit provádění a pokračovat v úkolu později
  • Souborový systém (C ++ 17 a vyšší): Poskytuje funkce potřebné pro práci se systémy souborů v místním systému
  • Vstup výstup: Umožňuje přístup k různým formám I / O, jako jsou soubory, konzole a síťové toky
  • Iterátoři: Výčet různých druhů dat; Vytváří seznamy položek a manipuluje s nimi konkrétními způsoby.
  • Lokalizace: Provádí tyto úkoly:
    • Klasifikace znaků
    • Řetězcové řazení
    • Numerické, peněžní a formátování a analýza data a času
    • Načtení zprávy
  • Numerika: Poskytuje přístup ke všem druhům funkcí k provádění úloh souvisejících s matematikou
  • Rozsahy (C ++ 20 a vyšší): Funguje s pohledy, které popisují, co chcete vidět jako výstup, k výčtu, manipulaci a jiné správě rozsahů dat
  • Regulární výrazy (C ++ 11 a vyšší): Pomáhá vám hledat vzory v řetězcích
  • Řetězce: Usnadňuje použití řetězců tím, že umožňuje převody dat, formátování a další druhy manipulace s řetězci
  • Podpora vláken (C ++ 11 a vyšší): Umožňuje paralelní a podprocesové provádění úkolů
  • Utility: Poskytuje přístup k funkcím a typům, které provádějí malé servisní úkoly v rámci standardní knihovny

Důvody pro použití vektoru

Někteří lidé považují vektory a pole za v podstatě zaměnitelné. Vektory se však liší od polí a musíte se ujistit, že víte, jak je použít k efektivnímu kódování. Existuje několik výhod použití vektoru namísto běžného, ​​obyčejného starého pole bez ozdůbek:



  • Nemusíte předem vědět, kolik položek v něm bude. U pole potřebujete znát velikost, když ji deklarujete.
  • Nemusíte konkrétně přidělit vektor, stejně jako dynamicky definované pole.
  • Je možné získat přesnou velikost vektoru, takže velikost vektoru nemusíte předávat funkci.
  • Když je vektor vyplněn, podkladový kód automaticky přidělí další paměť.
  • Vektor můžete vrátit z funkce. Chcete-li pole vrátit, musíte jej nejprve dynamicky definovat.
  • Můžete zkopírovat nebo přiřadit vektor.