728x90

error LNK2005 ~~~~~~~.obj์— ์ด๋ฏธ ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค

๋ผ๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋œฐ ์‹œ ํ—ค๋”ํŒŒ์ผ์„ #include ํ•˜๋Š” ๊ณณ์—์„œ ์ค‘๋ณต์œผ๋กœ ํ—ค๋” ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ค๋ฉด์„œ ์ถฉ๋Œ์„ ์ผ์œผ์ผฐ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.

 

๋”ฐ๋ผ์„œ ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐ ํ•จ์ˆ˜ ์„ ์–ธ์€ ํ—ค๋” ํŒŒ์ผ์— ํ•˜๋˜, ๊ตฌ์ฒด์ ์ธ ํ•จ์ˆ˜ ์ž‘์„ฑ์€ cpp ํŒŒ์ผ์—๋‹ค๊ฐ€ ํ•˜๋ฉด ํ•ด๊ฒฐ๋œ๋‹ค.

 

 

 

 

 

 

 

๋ฐ˜์‘ํ˜•
728x90

1. shared_ptr

- ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜๋ฅผ ๋™์‹œ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ํฌ์ธํ„ฐ๊ฐ€ ์ฐธ์กฐ๊ฐ€ ๊ฐ€๋Šฅ

- ์ฐธ์กฐํ•˜๋Š” ๊ณผ์ •์—์„œ count๋ฅผ ํ•จ

- ์„œ๋กœ๋ฅผ ์ฐธ์กฐํ•ด์•ผํ•  ๊ฒฝ์šฐ(์—ฌ๋Ÿฌ๋ช…์ด์„œ ๊ฐ™์€ ์ •๋ณด ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ)

- ๋‹จ, ์ˆœํ™˜ ์ฐธ์กฐ๊ฐ€ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์Œ

 

2. unique_ptr

- ํ•œ ํฌ์ธํ„ฐ๋‹น ํ•œ ์š”์†Œ๋งŒ์„ ๊ฐ€๋ฆฌํ‚ด

- ์ผ๋ฐ˜์ ์ธ ๋Œ€์ž… ์—ฐ์‚ฐ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜์ง€๋งŒ move ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์†Œ์œ ๊ถŒ์„ ๋„˜๊ฒจ์ฃผ๋Š”๊ฒƒ์€ ๊ฐ€๋Šฅ(์†Œ์œ ๊ถŒ์„ ๋„˜๊ฒจ์ฃผ๋ฉด ์›๋ณธ ํฌ์ธ      ํ„ฐ๋Š” NULL๋กœ ์„ค์ •๋จ)

- NULL์ด ์•„๋‹Œ unique_ptr์€ ํ•ญ์ƒ ์ž์‹ ์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ์ฒด๋ฅผ ์†Œ์œ ํ•˜๊ณ  ์†Œ๋ฉธ ์‹œ ์ž์‹ ์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ์ž์›์„ ํŒŒ๊ดดํ•จ

- ํŒฉํ† ๋ฆฌ ํ•จ์ˆ˜์—์„œ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ๋จ

- ์†Œ์œ ๊ถŒ ๋…์  ์ž์› ๊ด€๋ฆฌ์— ์‚ฌ์šฉํ•˜์ž

 

3. weak_ptr

- ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜๋ฅผ ๋™์‹œ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ํฌ์ธํ„ฐ๊ฐ€ ์ฐธ์กฐ ๊ฐ€๋Šฅ

- count๋ฅผ ํ•˜์ง€ ์•Š๊ณ  ๋ณ€์ˆ˜๊ฐ€ ์‚ฌ๋ผ์ง€๋ฉด ์ž๋™์œผ๋กœ ์ฐธ์กฐํ•  ๋Œ€์ƒ์„ ์žƒ๊ฒŒ๋จ

- ๋ฉ”๋ชจ๋ฆฌํ•ด์ œ ๊ธฐ๋Šฅ์€ ์—†์Œ

 

4. auto_ptr

- C++ 11 ์ดํ›„์—๋Š” ์‚ฌ๋ผ์ง„ ํฌ์ธํ„ฐ

- ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜์˜ ํฌ์ธํ„ฐ๋ผ์„œ ์–ด๋–ค ํƒ€์ž…์˜ ํฌ์ธํ„ฐ๋“ ์ง€ ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ

- new๋กœ ์ƒ์„ฑํ•œ ๋‹จ์ผ ๊ฐ์ฒด์—์„œ๋งŒ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ๋ฅผ ๋ณด์žฅํ•ด์„œ malloc ๋“ฑ์œผ๋กœ ํ• ๋‹นํ•  ๊ฒฝ์šฐ ํ•ด์ œ๊ฐ€ ๋˜์ง€ ์•Š์Œ

- ๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ์ฒด๋ฅผ 2๊ฐœ ์ด์ƒ ์ƒ์„ฑํ•˜๋ฉด ์•ˆ๋จ(์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ์„ shared_ptr์—์„œ๋Š” ์ฐธ์กฐ ์นด์šดํŠธ๋ฅผ ํ†ตํ•ด์„œ ํ•ด๊ฒฐํ•จ)

- ๋‹จ์ ๋•Œ๋ฌธ์— unique_ptr๋กœ ๋Œ€์ฒดํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ๋จ

 

 

 

๋ฐ˜์‘ํ˜•
728x90

ํ…œํ”Œ๋ฆฟ ํ•จ์ˆ˜๋Š” ์ปดํŒŒ์ผ๋˜์ง€๋„ ํ˜ธ์ถœ๋˜์ง€๋„ ์•Š์€ ํ•จ์ˆ˜์˜ ํ‹€

์ œ๋„ค๋ฆญ ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ์ปดํŒŒ์ผ ์‹œ์ ์— ๊ตฌ์ฒดํ™”์‹œํ‚ค๊ธฐ ์œ„ํ•œ ํ‹€์„ ๋งŒ๋“œ๋Š” ๊ฒƒ

๋งคํฌ๋กœ(#define)์™€ ๋‹ฌ๋ฆฌ ๋ณต์žกํ•œ ํ•จ์ˆ˜๋‚˜ ํด๋ž˜์Šค๋ฅผ ํ‘œํ˜„ํ•˜๋Š”๋ฐ ํ•œ๊ณ„๊ฐ€ ์—†๋‹ค.

์ œ๋„ค๋ฆญ ํด๋ž˜์Šค(generic class)๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

ํ…œํ”Œ๋ฆฟ ํ•จ์ˆ˜์˜ ์žฅ์ 

- ํ•จ์ˆ˜ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ƒ์‚ฐ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์„ ๋†’์ž„

 

ํ…œํ”Œ๋ฆฟ ํ•จ์ˆ˜์˜ ๋‹จ์ 

- ์ปดํŒŒ์ผ๋Ÿฌ์— ๋”ฐ๋ผ์„œ ํ…œํ”Œ๋ฆฟ์ด ์ง€์›๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์–ด์„œ ํฌํŒ…์— ์ทจ์•ฝ

- ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋นˆ์•ฝํ•˜์—ฌ ๋””๋ฒ„๊น…์— ๋งŽ์€ ์–ด๋ ค์›€์ด ์žˆ์Œ

 

*swap ํ•จ์ˆ˜๋ฅผ ํ…œํ”Œ๋ฆฟ ํ•จ์ˆ˜๋กœ ํ‘œํ˜„*

1
2
3
4
5
6
7
8
template <class T>
void swap(T &a, T &b)
{
    T temp;
    temp = a;
    a=b;
    b=tmp;
}
cs

 

 

 

 

 

 

๋ฐ˜์‘ํ˜•
728x90

๋ฒ„๋ธ”์ •๋ ฌ์„ ์ด์šฉํ•˜์—ฌ ๋žญํ‚น ์‹œ์Šคํ…œ์„ c++๋กœ ๊ตฌํ˜„ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์•ž์œผ๋กœ ๊ฒŒ์ž„์„ ์งค๋•Œ ๋žญํ‚น ์‹œ์Šคํ…œ์— ์ข…์ข… ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ฒ ๊ตฐ์š”

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include<iostream>
#include<string>
using namespace std;
 
int main() {
    string array[10][2];
    string temp[1][2];// ๊ฐ’์˜ ์œ„์น˜๊ตํ™˜์— ์‚ฌ์šฉ ๋  ๋ณ€์ˆ˜
 
                      /*๋ฐฐ์—ด ์ดˆ๊ธฐํ™”*/
    for (int i = 0; i < 10; i++) { // ํ–‰
        array[i][0= { "___ " }; // ์—ด
        array[i][1= { "0" };
    }
    for (int j = 0; j < 9; j++)
    {
        for (int i = j; i < 9; i++)                    //๊ฐ’์ด ๊ทธ ๋‹ค์Œ๊ฐ’๋ถ€ํ„ฐ ๋“ค์–ด๊ฐ€์•ผํ•˜๋ฏ€๋กœ
        {
            cout << "์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”:";
            cin >> array[i][0];
            cout << "์ ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”:";
            cin >> array[i][1];
 
            for (int y = 9; y > 0; y--){
                for (int z = 0; z < y; z++) {
                    if (atoi(array[z][1].c_str()) < atoi(array[z + 1][1].c_str())) {
                        /*์ ์ˆ˜๋ถ€๋ถ„ ๋ณต์‚ฌ*/
                        temp[0][1= array[z][1];
                        array[z][1= array[z + 1][1];
                        array[z + 1][1= temp[0][1];
 
                        /*์ด๋ฆ„๋ถ€๋ถ„ ๋ณต์‚ฌ*/
                        temp[0][0= array[z][0];
                        array[z][0= array[z + 1][0];
                        array[z + 1][0= temp[0][0];
                    }
                }
            }
            cout << "-์ ์ˆ˜ ๋žญํ‚น-" << endl;
            for (i = 0; i < 10; i++) {
                cout << i + 1 << "  " << array[i][0<< "  " << array[i][1<< endl;
            }
            cout << endl;
        }
    }
    return 0;
}
 
cs
๋ฐ˜์‘ํ˜•
728x90

 

์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์ž!

 

 

์ด๋Ÿฐ ์ฐฝ์ด ๋œจ๋ฉด Win32 ์ฝœ์†” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ฒƒ์ด๋‹ค.

์ด๋ฆ„์„ ๋ฐ”๊ฟ”์ฃผ๋ฉด ํ”„๋กœ์ ํŠธ์˜ ์ด๋ฆ„์ด ๋ฐ”๋€Œ๊ณ  ์œ„์น˜๋Š” ์ž์‹ ์ด ์„ค์ •ํ•ด์ฃผ๊ณ  ์‹ถ์€ ๊ณณ์— ์ง€์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

(์ฐธ๊ณ ๋กœ ์ด๋ฆ„๊ณผ ์†”๋ฃจ์…˜ ์ด๋ฆ„์€ ๋™์ผํ•˜๊ฒŒ ์ž๋™์œผ๋กœ ์ž…๋ ฅ๋œ๋‹ค.)

 

ํ™•์ธ์„ ๋ˆ„๋ฅด๊ณ  ๊ทธ๋‹ค์Œ ๋œจ๋Š” ์ฐฝ์—์„œ ๋‹ค์Œ์„ ๋˜ ๋ˆŒ๋Ÿฌ์ฃผ์ž.

 

 

์ด๋Ÿฌํ•œ ์ฐฝ์ด ๋œจ๊ฒŒ ๋˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ๊ฒƒ์€ ๋นˆ ํ”„๋กœ์ ํŠธ์ด๊ธฐ์— ๋นˆํ”„๋กœ์ ํŠธ๋ฅผ ์ฒดํฌํ•˜๊ณ  ๋งˆ์นจ์„ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ์ƒ์„ฑ๋œ๋‹ค.

 

 

์ž ๊ทธ๋Ÿฌ๋ฉด ์ด์ œ ์†”๋ฃจ์…˜ ํƒ์ƒ‰๊ธฐ์— ๋‚ด๊ฐ€ ๋งŒ๋“  ํ”„๋กœ์ ํŠธ๊ฐ€ ๋œจ๊ฒŒ ๋˜๋Š”๋ฐ ์—ฌ๊ธฐ์—์„œ

 

[์†Œ์ŠคํŒŒ์ผ] ์šฐํด๋ฆญ -> ์ถ”๊ฐ€ -> ์ƒˆ ํ•ญ๋ชฉ ์„ ๋ˆŒ๋Ÿฌ์ฃผ์ž

 

 

๊ทธ๋Ÿฌ๋ฉด ์ด๋Ÿฌํ•œ ์ฐฝ์ด ๋œจ๊ฒŒ ๋˜๋Š”๋ฐ

 

C++ ํŒŒ์ผ ์„ ํด๋ฆญํ•ด๋†“๊ณ  ์ด๋ฅธ์—๋Š” ์†Œ์Šค์ด๋ฆ„(์†Œ์Šค์ด๋ฆ„์€ ๊ผญ ์˜์–ด๋กœ ๋งŒ๋“ค๋„๋ก ํ•˜์ž).c ๋ฅผ ํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.

์†Œ์Šค์ด๋ฆ„.cpp ํŒŒ์ผ์„ ๋งŒ๋“ค๊ฒŒ ๋˜๋ฉด C์–ธ์–ด๊ฐ€ ์•„๋‹Œ C++์–ธ์–ด๋กœ ๋งŒ๋“ค์–ด์ง€๋ฏ€๋กœ ํ™•์žฅ์ž๋Š” ๊ผญ .c๋กœ ๋งŒ๋“ค์–ด์ฃผ๋„๋ก ํ•˜์ž.

 

 

์•ผ์ƒ์˜ ๋นˆ ์†Œ์ŠคํŒŒ์ผ์ด ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์กŒ๋‹ค!

 

๊ทธ๋Ÿฌ๋ฉด ์ด์ œ ์ˆ˜ํ•™์˜ ์ง‘ํ•ฉ๋‹จ์›๊ณผ ๊ฐ™์€ C์–ธ์–ด์˜ Hello,World! ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ํ•œ๋ฒˆ ๋งŒ๋“ค์–ด๋ณด์ž.

 

 

์ด๋ ‡๊ฒŒ ์ ์—ˆ์œผ๋ฉด Ctrl+F5 ๋ฒˆ์„ ๋ˆŒ๋Ÿฌ์„œ ์†”๋ฃจ์…˜์„ ๋นŒ๋“œํ•ด๋ณด์ž.

 

 

์ด๋Ÿฐ ์ฐฝ์ด ๋–ณ๋‹ค๋ฉด ์„ฑ๊ณตํ•œ๊ฒƒ์ด๋‹ค. (ํ•œ๊ธ€ ์œˆ๋„์šฐ์—์„œ๋Š” "๊ณ„์†ํ•˜๋ ค๋ฉด ์•„๋ฌด ํ‚ค๋‚˜ ๋ˆ„๋ฅด์‹ญ์‹œ์˜ค..." ์ผ๊ฒƒ์ด๋‹ค.)

 

 

ํ•œ๊ธ€์„ ์ ์–ด๋„ ์ž˜ ์ถœ๋ ฅ๋œ๋‹ค.

 

์Œ ๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ์„œ ์ฐฝ์˜ ์ƒ‰๊น”์ด ํฐ์ƒ‰์ธ๊ฒŒ ๋งˆ์Œ์— ์•ˆ๋“ ๋‹ค ์‹ถ์œผ๋ฉด ์ฐฝ์—์„œ ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ์„ ํ•˜๋ฉด

 

 

์—ฌ๊ธฐ์„œ Properties(์†์„ฑ)์— ๋“ค์–ด๊ฐ€๋ณด์ž.

 

 

์—ฌ๊ธฐ์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์†์„ฑ์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.

 

 

์ด๋ ‡๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค!

 

 

๋ฐ˜์‘ํ˜•
728x90

*C์–ธ์–ด๋Š” ์ ˆ์ฐจ์ง€ํ–ฅ์  ํŠน์„ฑ์„ ์ง€๋‹Œ๋‹ค.

C์–ธ์–ด๋Š” ์ •ํ•ด์ง„ ์ˆœ์„œ์˜ ์‹คํ–‰ํ๋ฆ„์„ ์ค‘์‹œํ•œ๋‹ค. ์ ˆ์ฐจ์ง€ํ–ฅ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์‚ฌ๋žŒ๋„ ์กฐ๊ธˆ๋งŒ ๊ณต๋ถ€ํ•˜๋ฉด ์‰ฝ๊ฒŒ ์ต์ˆ™ํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

*C์–ธ์–ด๋กœ ๊ตฌํ˜„๋œ ํ”„๋กœ๊ทธ๋žจ์€ ์ข‹์€ ์„ฑ๋Šฅ์„ ๋ณด์ธ๋‹ค.

์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘์ด ์ƒ๋Œ€์ ์œผ๋กœ ์ ๊ณ , ์†๋„๋ฅผ ์ €ํ•˜์‹œํ‚ค๋Š” ์š”์†Œ๋“ค์„ ์ตœ์†Œํ™”ํ•œ ์–ธ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๋ฐ˜์‘ํ˜•
728x90

๊นŒ๋จน์ง€ ๋ง๊ณ  ๋ณต์Šตํ•˜์ž STL์€ ๊ฝค๋‚˜ ์œ ์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.

๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด STL์€ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ์ž‘์„ฑ๋œ ๋งŽ์€ ์ œ๋„ค๋ฆญ ํด๋ž˜์Šค์™€ ํ•จ์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.

์ปจํ…Œ์ด๋„ˆ,iterator,์•Œ๊ณ ๋ฆฌ์ฆ˜๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค.

 

- ์ปจํ…Œ์ด๋„ˆ ์ข…๋ฅ˜

 ํด๋ž˜์Šค

ํ—ค๋” 

 vector

<vector> 

deque

<deque> 

list

<list> 

set

<set> 

map

<map> 

 stack

<stack> 

 queue

<queue> 

- iterator ์ข…๋ฅ˜

 ์ข…๋ฅ˜

iterator 

 const_iterator

 reverse_iterator

 const_reverse_iterator

- ์•Œ๊ณ ๋ฆฌ์ฆ˜

copy 

 merge

 random

 rotate

 equal

 min

 remove

 search

 find

 move

 replace

 sort

 max 

partition

 reverse

 swap

 

๋ฐ˜์‘ํ˜•

+ Recent posts