C Vs C ++ Vs C ++ 14 (Një krahasim i kohës)

Ndërsa programoni, ndonjëherë ju mund të keni qenë ngecur në një pozicion, pasi kur ju keni zgjedhur të bëni atë pyetje në C dhe C ++ ose C ++ 14, atëherë faktori vendimtar vjen në kohën e funksionimit dhe aftësinë e programit për t'u përshtatur me ndryshimet në e ardhmja . Këtu C ++, C ++ 14 kanë një avantazh mbi C pasi ka funksione super të paracaktuara në bibliotekën e tij të quajtur Biblioteka Standard Temple e njohur gjerësisht si STL e cila është një grup i klasave të shablloneve C ++ për të siguruar strukturat e të dhënave të programimit të përbashkëta dhe funksionet siç janë listat, rafte , vargje, etj. Shtë një bibliotekë e klasave të enëve, algoritmeve dhe iteratorëve e cila kursen ton në kohë duke siguruar struktura të ndryshme të të dhënave për programuesin me një klik.

Dallimi i madh midis C dhe C ++ është se C është një gjuhë programuese procedurale dhe nuk mbështet klasa dhe objekte, ndërsa C ++ është një ndërthurje e gjuhës programuese të orientuar në procedurale dhe me objekt; prandaj C ++ mund të quhet gjuhë hibride.

Tani duke arritur në pikën, mund të keni dëgjuar se C ++ është më i ngadaltë se C, por a keni parë statistikat? Pasi të kemi bërë modifikime të lehta në program, ne mund të bëjmë që një program C ++ të drejtohet në të njëjtën kohë ose ndonjëherë edhe më shpejt se një program përkatës i shkruar në C. Këtu kam marrë 2 pyetje në Kërkimin binar dhe pastaj i kodova në C dhe C ++ dhe C ++ 14 dhe më pas krahasova kohën e tyre të vrapimit.

Nëse në përgjithësi po përdorni cin / cout në C ++, atëherë modifikimi i mëposhtëm mund të jetë mjaft i dobishëm. Thjesht përfshijeni atë në fillim të programit dhe përdorni atë në përgjithësi dhe ju jeni mirë të shkoni.

Ju mund të gjeni atë që bën këtu.

Q1. Misteri i sapunit

Shtë një pyetje e përgjithshme e kërkimit binar, në të cilën jepen pyetjet q dhe duhet të kërkojmë në mënyrë binare q numrin e herëve në elementët n dhe id kompleksitetin e tij O (Q * Log (N)), ku N nuk ka asnjë element në grup.

Mund ta gjeni zgjidhjen këtu.

Kur e kodoj dhe e ekzekuton në raste të mëdha provash, kjo është ajo që e mora.

Koha e drejtimit të Q1 duke përdorur G ++ 5.4.0

Ju mund të shihni qartë se C është shumë më shpejt se C ++ 14, por gjëja që duhet të vini re është se kur përdorni atë modifikim (nxitje) mund të shihet qartë që C ++ 14 dhe C ++ i tejkalojnë C në kohën e tyre të ekzekutimit (në rast të raste të mëdha testimi).

Q2. Fillimi i zhvillimit të lojërave

Kjo është një pyetje e lehtë e mesme e cila përfshin bërjen e kërkimeve binare N në një grup 2-d me kolona N rreshta dhe M dhe më pas gjetjen e minimumit të përgjigjes së marrë në secilën rresht, e cila është përgjigjja jonë përfundimtare. Kompleksiteti rezulton të jetë O (Nlog (M)).

Zgjidhja mund të gjendet këtu.

Tani duke e koduar atë në 3 gjuhë të ndryshme këtu është ajo që mora:

Koha e drejtimit të Q2 duke përdorur G ++ 5.4.0

Këtu gjithashtu mund të shihet qartë se C i tejkalon C ++ 14 por duke përdorur atë modifikim, C ++ është më i shpejtë se C.

Disa madje përdorin getchar () të zhbllokuar (megjithëse ka një rrjedhje sigurie), e cila është më e shpejtë në mesin e të gjitha këtyre pasi që lexon dhe shkruan direkt duke përdorur regjistër duke anashkaluar prurjet në mes (vetëm përdorimi nëse koha është shqetësim i madh). Ndonjëherë kufijtë e kohës për pyetje janë aq të rrepta saqë këto modifikime luajnë një rregull të rëndësishëm, pa to dikush mund të marrë TLE.

Hartuesi gjithashtu luan një rol vendimtar. Dy prej tyre janë G ++ 5.4.0 dhe CLANG. Një përpilues është një program kompjuterik (ose një grup programesh) që shndërron kodin burimor të shkruar në një gjuhë programimi (gjuhën burimore) në një gjuhë tjetër kompjuteri (gjuha e synuar), me këtë të fundit shpesh që ka një formë binare të njohur si kod objekti. Përpiluesi i cili mund ta bëjë këtë punë më shpejt do të jetë më i mirë.

PROSET E GCC

1. GCC mbështet gjuhë të cilat nuk kanë për qëllim, siç janë Java, Ada, FORTRAN, Go, etj.

2. GCC mbështet shumë shtesa gjuhësore, disa nga të cilat nuk implementohen nga Clang. Për shembull, në modalitetin C, GCC mbështet funksionet e fole dhe ka një shtrirje që lejon VLA në structs.

PROSET E KANANGJIT

  1. Clang është shumë më i shpejtë dhe përdor memorie shumë më pak se GCC.
  2. Mbështetja e Clang për C ++ është më e pajtueshme se sa GCC në shumë mënyra.
  3. Clang mbështet shumë shtesa gjuhësore, disa nga të cilat nuk implementohen nga GCC. Për shembull, Clang siguron atribute për kontrollimin e sigurisë së fijeve dhe llojeve të zgjatura të vektorit.
  4. Clang është dizajnuar që në fillim për të siguruar një diagnostikim tejet të qartë dhe konciz (gabime dhe mesazhe paralajmëruese), dhe përfshin mbështetje për diagnostikimin ekspresiv.

Pra, kjo përfundon aktivitetin tim të vogël argëtues të krahasimit të kohës së ekzekutimit midis dy gjuhëve më të përdorura në programimin kompjuterik duke përdorur kërkimin binar si një strumbullar. Shpresoj se keni fituar disa njohuri duke lexuar këtë dhe do të jeni në gjendje të zgjidhni gjuhën e programimit në një mënyrë më të mirë.

Lexim i lumtur!