¿

C++11 ֽ ¥:2021-9-12 8:29:10 ȸ:1312
ۼ : ۰K
Ʈ : 2312
: 2020-02-14 22:27:56
湮Ƚ : 355
258, 99
Ұ : ö⸦ źϴ α׷
ۼ

C/C++ ֽ
C++ ǥ
˴ٽ C 1972 Ͻ ġ C++ 80 ʿ ƮνƮ C ü ߰Ͽ . â C++ ϰ Ʃϴ 98 ǥؾ Ȯߴ. ̶ ǥؾ Ī ISO14882:1998̸ ٿ C++98̶ θ.
ֱٱ C++ α׷ ַ C++98 ϸ ִ κ C++98 Ѵ. 2000 Ͽ ڹ, C# Ͽ ǹ Ȱ ȿ C++ ū ȭ üǾ ־. ֽ ϱ ־ Ż .
2003, 2007 ָ Ȯϰ Ŵ ׸ ϸ ǥ ̺귯 ū ȭ . κ ڵ ñ⿡ Ե ʾ C++98 ӹ ־. ̻ ʿ ʾҾ.
׷ C++ 2011 ̸ ߴ. 2000 ۾ ۼϿ C++0x ҷ 2011 ǥؾ Ȯߴ. ǥؾ C++11̶ θ. Ŀ C++14, C++17 ǥؾ ǥǾ C++11 ̹ ߰ Ȯϰ ϴ ܼ̾.
ֱٿ C++20 ǥؾ ٽ ǥ ̴.   μ C++11 ȭ ֽ ̴. C++98 ̹ ȴٰ ϰ C++11 Ŀ ߰ Ѵ. Ϸ غ ʿ ־ Ʃ 2019 ǽ ִ.
for
ٸ foreach شϴ ̴. 迭̳ ÷ ÷ڷ ȸ ʰ Ҹ ٷ Թ޾ ϳ ȸѴ. .

for (Ÿ : ÷) { }

÷ ȸ ̵ ǥ 迭̶ ϸ ȴ. ü ȸϸ Ҹ ϳ Ͽ η Ѵ. Ϻθ ȸϴ ü ȸϴµ ϴ.

#include <stdio.h>

int main()
{
      int ar[] = { 8, 9, 6, 2, 9 };

      for (int i : ar) {
             printf("%d ", i);
      }
}
=> 8 9 6 2 9

ar Ҹ ߴ. i ÷ 0, 1, 2, 3, 4 ޹޴ ƴ϶ 8, 9, 6, 2, 9 Ұ ʴ Թ޴´. ar ũ⳪ ȸ ʿ Ҹ аڴٴ ͸ ȴ.



Ÿ ҿ   ̴̻. ar ȸϴ i Ÿ int ̴. ׷ ƾ ϴ ƴϸ ȣȯ ŸԵ ִ. ٸ ʿ ȯ ϾǷ ٶ ʴ.

for (double i : ar) {
      printf("%f ", i);
}
=> 8.000000 9.000000 6.000000 2.000000 9.000000

ο Ұ Թ޴ 纻̴. б ƴϾ ٲ۴ٰ ؼ ʴ´.

for (int i : ar) {
      i = i * 2;
}
printf("%d ", ar[0]);
=> 0

ȸϸ ar Ҹ 2 . i 8 Թ޾ 16 ǰ 9 Թ޾ 18 ġ ʴ´. ar[0] 8̴.
ȸ߿ ؾ Ѵٸ ۷ Ѵ. ۷ ƴ϶ Ű ̹Ƿ ۷ ִ.

for (int& ri : ar) {
      ri--;
}
for (const int& rri : ar) {
      printf("%d ", rri);
}
=> 7 8 5 1 8

1 ҽ״. ٽ Ұ 1 ִ. б⸸ Ѵٸ ۷ Ѵ.
۷ ޴ ͺٴ ׳ ޴ ȿ̴. ׷ Ŵ ü ü ϴ ͺ ۷ д ϰ ȿ̴.
for ݺ̹Ƿ ο ǿ break continue ִ. ڵ 6 dz ٰ 2 ŻѴ.

for (int i : ar) {
      if (i == 6) continue;
      printf("%d ", i);
      if (i == 2) break;
}
=> 8 9 2

for ÷ڰ ƴ Ҹ Թ޾ ȸϱ ο ° . ˾ƾ Ѵٸ ̶ for ۿ .

for (int i = 0; i < sizeof(ar) / sizeof(ar[0]); i++) {
      printf("%d° = %d\r\n", i, ar[i]);
}

̶ i ar ÷ڸ ȸϸ ar[i] д´. for ÷ڿ Ұ ִ.

0° = 8
1° = 9
2° = 6
3° = 2
4° = 9

ٴ Ұ ʿϹǷ for ε ִ.
auto Ÿ
auto Ű ԵǴ Ÿ ڵ ϴ Ÿ̴. ʱ̳ Ÿκ Ÿ ڵ ִٸ auto Ű常 ȴ.

#include <stdio.h>

int main()
{
      auto i = 1234;
      auto d = 3.14;

      printf("%d\n", i);
      printf("%f\n", d);
}
=> 1234
3.140000 

1234 ʱȭ i ̸ 3.14 ʱȭ d Ǽ̴. ̷ int, double Ÿ ʿ auto ָ ȴ. auto Ÿ ƴ϶ ڵ ߷ϴ ̴. ߷ ٰŰ ־ ϸ a Ÿ ̴.

auto a;       //

auto Ÿ ߷ ϱ ̴. int double ªƼ ø Ÿ . .

#include <stdio.h>
#include <iostream>
#include <vector>
using namespace std;

int main()
{
      const char* str = "korea";
      vector<char> vc(&str[0], &str[5]);
      for (std::vector<char>::iterator it = vc.begin(); it != vc.end();it++) {
             cout << *it;
      }
}

͸ ȸϴ ݺ Ÿ std::vector<char>::iterator Ǿ ־ ʹ ϴ. Ϸ vc Ÿ ˰ Ƿ vc.begin() Ÿ ϴ ߷ ̶ auto ŸԸ ָ ȴ.

for (auto it = vc.begin(); it != vc.end(); it++) {
      cout << *it;
}

ڵ尡 ª б⵵ .  ø ø ϸ ݺڳ Ÿ ° ƴ϶ ư . ̷ Ϸ " ˾Ƽ " ϴ ٷ auto̴. ܼ ݺ̶ ڵ庸ٴ for ª ϴ.

for (char c : vc) {
      cout << c;
}

C++ 14 Լ ŸԿ auto Ű带 ִ. ü ϴ ŸԵ ߷ ִ.  ׷ ΰ ų ־ ʴ .

auto Add(int a, int b)
{
      return a + b;
}

C++ C auto Ű尡 ־. C auto ڵ Ǿٰ ҸǴ ǹѴ. ڵ ҷ ܺ external ݴ ǹ̿. δ auto ʾƵ ׻ auto ⺻̾ ʴ Ű忴. C++ 11 auto ǹ̰ ٲ Ÿ ڵ ߷϶ Ǿ. ׷ ̴.

auto int i = 1234;

auto Ÿ̰ int Ÿ̾ Ÿ ڰ ִ ̸ ̴. C C++ ȵȴ. ƹ 󵵰 Ű忴µ ̷ ٲپ ̽ ƴϴ.
nullptr
Ͱ Ÿ ͷ̸ NULL̳ 0 ̴. Ͱ ȿ и ǥ ִٴ ִ. .

#include <stdio.h>
#include <malloc.h>

int main()
{
      void* mem = nullptr;

      mem = malloc(100);
      if (mem == nullptr) {
             return;
      }
      free(mem);
}

ʱȭ nullptr и ־ ȴ. 0̳ NULL Ÿ и ָ ʴٴ ִ.

#include <stdio.h>

void func(int a) { printf("%d\n", a); }
void func(int *p) { printf("%p\n", p); }

int main()
{
      func(0);
      func(nullptr);
      func(NULL);         // ָ
}

޴ func Լ ͸ ޴ func Լ εǾ ִ. ¿ func(0) func(nullptr) Լ ȣ ϴ. ׷ func(NULL) Լ ȣ Ȯϰ ϱ ƴ.
NULL ǰ ޶µ C++ 0̸ C (void *)0 ǵǾ ־ ϰ ϴ. ̷ ̼ DZ⵵ Ѵ.
ȣȯ ؾ ϹǷ ε NULL̳ 0 ִ. ׷ Ϳ ǥ nullptr ǥϴ ϴ.
Ŭ
C enum ̾ . ٸ Ÿ ߺǾ ȵǸ ־ ȥ.

enum Origin { EAST, WEST, SOUTH, NORTH };
enum Race { Terran, Protoss, Zerg };
int o = SOUTH;
o = Zerg;
printf("%d", o);            // 2

ϴ Origin ϴ Race ߴ. ǹϴ SOUTH ǹϴ Zerg 2 ̻ ִ. ̷ SOUTH κп Zerg ߻ ʾ ϴ.
Ư Ƿ 𼭳 ̸ ־ ߺǾ ȵȴٴ ִ. ̴. EAST Origin 0 ̹ ǵǾ ִµ Race 3 ٽ Ϸ ߺ ̴.

enum Race { Terran, Protoss, Zerg, EAST };

Ŵ Ʈ ϸ Ī ߺ ߻ Ȯ . ̷ ϱ θ ٿ oEast, rTerran οؾ ϴµ ϴ. ̷ ؼϱ enum class ߴ.

- Ŭ ҼӵǸ ƴϾ ٸ Ī ߺǵ .
- Ī :: ĪѴ.
- ȣȯ ʾ ij ؾ߸ ִ.

C µ C++ Ŭ ִٴ ū ̴. Ŭ ϸ . Ҽ Ƿ 빮ڷ ʾƵ .

enum class EOrigin { east, west, south, north };
int o = (int)EOrigin::south;
printf("%d", o);            // 2

enum Ű class Ű带 ߰Ͽ Ѵ. ̷ Ǹ Ī ܵδ EOrigin::south Ҽ ݵ Ѵ. ȣȯ ʾ ijؾ ϸ Ǽ ٿ ش.
int Ÿ԰ ũⰡ ϳ 4Ʈ Ѵ. 40 ϴ ʹ ũ. ̽ Ÿ Ͽ ޸𸮸 ̳ ִ.

enum class EOrigin : char { east, west, south, north };
printf("%d", sizeof(EOrigin::south));       // 1

EOrigin Ÿ char ߴ. char ŸԸ ص 256 ¸ ִ. sizeof ũ⸦ 1Ʈ ִ. ޸𸮸 ˶ϰ ִٴ Ҹ ʴ. 32Ʈ ȿ ϸ ũ⸦ ̸ ӵ .
Ŭ ٴ Ǿ ׷ٰ ؼ C enum ƴϴ. ʰ ٸ Ŭ Ȳϰ ɸŸ. Ŭ üѴٱ⺸ٴ ʿ信 ٶϴ.

ٴ Լ ϰ ǥϴ ǥ̴. C#̳ ڹٿ ԵǾ C++ ټ ʰ ԵǾ. .

[ĸó](μ)->Ÿ { ü; }

Լ 𹮿 ִ Ҵ ԵǾ ִ ̴. ϰ ϴ Լ ٷ ۼ .

int (*add)(int, int) = [](int a, int b)->int {return a + b; };
printf("%d\n", add(2, 3));       // 5

a, b ޾ int Ÿ ϴ ٽ ϰ Լ add ߴ. Թ̱ ڿ ݷ ʿϴ.
add ޾ ϴ Լ ̴. add Լó ִ. Լ Ÿ ǰ ڸ ׳ auto Ϸ Ÿ ߷ ش.

auto add = [](int a, int b)->int {return a + b; };

ٴ ִ ª ̾ Ҹ ִ. Ÿ ϴ.

auto add = [](int a, int b) {return a + b; };

C#̳ ڹٿ μ Ÿ̳ return Ű . μ μ ȣ ְ Ÿ void Լ return Ű嵵 ִ.   μ ϵ ܼ ¹ ٷ Ͽ ȣ ϴ ڵ̴.

[] { printf("Hello C++");  }();

ٰ Ϲ Լ ٸ ǹ ٷ ζȭϿ Ŀ ִٴ ̴. printf μ ٸ ϰ μ Ѱ ȣ ȴ.

printf("%d\n", [](int a, int b)->int {return a + b; }(2, 3));

ĸó ܺ ٽĿ ٽ ⵿ֱ ش ִ ̴. .
 
#include <stdio.h>

auto getfunc()
{
      int base = 1;
      auto add = [base](int a, int b) {return a + b + base; };
      return add;
}

int main()
{
      auto add = getfunc();
      printf("%d\n", add(2, 3));       // 6
}

base getfunc ̸ ٽ ο ϰ ִ. ٵ getfunc ο ٰ base ִٰ . ׷ ĸó [base] Ͽ ٽ Ǵ ȿ base ȿϵ ־ Ѵ.
main getfunc ȣϿ ٽ add ϰ add 2, 3 ׸ base 6 ߴ. base getfunc main add ȣ ϰ ִ. ĸó ش ٽ ȿϵ δ ̴.
[ ] ȣȿ ĸó = ȣ ܺ ϰ & ȣ ܺ Ѵ. ̺Ʈ ڵ鷯 ٷ ڵ鷯 о ĸó Ѵ.
 



 . ̰ ȴ.
연수동소개팅 흥업면번개만남 월암동출장만남 밤길출장샵 | 영주출장마사지 | 종로출장안마 학장동성인맛사지 석바위시장역출장대행 이쁜여자사귀는법 육가04,교토버스투어,여성누드 건대마사지 안양콜걸샵 출장대행 안산출장만남 오토코노코 강간 서귀포성인출장마사지 송파여대생출장 스마트폰 만남어플 마블세면대 공주출장샵 아리19 짤

여권사진 부수입만들기 | 재테크 관련 도서 | 신뢰의 P2P 유니어스펀딩 아기이불 동래 겨울준비 재테크사기 | 대출나라 광고 | 집에서 1억 리얼 후기 믹스커피 팔로우늘리기 육아맘일상 신사 제천콜걸샵 섹스카페 거제출장안마 PVC시스템창호

Ϻ Ű ũ


αϼž ֽϴ.