달력

4

« 2024/4 »

  • 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

동일한 프로젝트를 다른 버전의 VS에서 컴파일 할 때 


error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. ......


이런 에러가 날 수 있다.




이 경우를 해결하기 위해서는


1) 프로젝트 속성 -> 구성속성 -> 일반

인터넷 상에서는 플랫폼 도구 집합을 아래 사진과 같이

 Visual Studio 2012(v110) 에서 Visual Studio 2010 (v100)으로 변경하라고 했는데 나는 v100이 없어서 <부모 또는 프로젝트 기본값에서 상속>을 선택했다.



2) 프로젝트 속성 -> 구성속성 -> 코드 생성


다중 스레드 디버그 DLL(/MDd) 다중 스레드 디버그 (/MTd) 로 변경




그랬더니...



잘 된다.


착하다.

'DATA_OLD > C/C++' 카테고리의 다른 글

[C++] const의 쓰임새  (0) 2014.11.11
[C++] 범위 기반 for문  (0) 2014.11.11
[C++] switch문 내에서 변수 선언에 대해  (0) 2014.11.11
[STL] List / Map  (0) 2014.10.21
[STL]Vector  (0) 2014.10.21
:
Posted by 웽웽
2014. 11. 11. 17:03

[C++] const의 쓰임새 DATA_OLD/C/C++2014. 11. 11. 17:03

1) 함수 파라미터에 사용하는  const

함수에서 포인터 등을 통해 기존의 데이터를 파라미터로 받아오는 경우가 많은데, 이 함수의 원형 파라미터에 const를 붙일 경우, 해당 파라미터를 통해 받는 값은 함수 내에서 임의로 변경이 불가능하게 된다.(이러한 동작이 존재할 경우 컴파일 에러가 남)



'DATA_OLD > C/C++' 카테고리의 다른 글

[VS] error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다.  (0) 2015.01.08
[C++] 범위 기반 for문  (0) 2014.11.11
[C++] switch문 내에서 변수 선언에 대해  (0) 2014.11.11
[STL] List / Map  (0) 2014.10.21
[STL]Vector  (0) 2014.10.21
:
Posted by 웽웽
2014. 11. 11. 15:32

[C++] 범위 기반 for문 DATA_OLD/C/C++2014. 11. 11. 15:32

int a[5] = { 12, 13, 15, 16, 17 };

int total = 0;

for (int b : a)

{

total += b;

}

//이 결과는 a 배열 내의 모든 원소가 더해진 값이 total에 저장됨


작동 원리


for ( for-range-declaration : expression )

   statement 


expression에는 항상 배열류(배열, 리스트, 벡터 등) 자료구조가 들어가야 함.

for-range-declaration에는 해당 배열의 값이 저장됨

즉, expression의 처음부터 끝의 범위동안 반복해서 statement를 반복함.




'DATA_OLD > C/C++' 카테고리의 다른 글

[VS] error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다.  (0) 2015.01.08
[C++] const의 쓰임새  (0) 2014.11.11
[C++] switch문 내에서 변수 선언에 대해  (0) 2014.11.11
[STL] List / Map  (0) 2014.10.21
[STL]Vector  (0) 2014.10.21
:
Posted by 웽웽
2014. 11. 11. 12:13

[C++] switch문 내에서 변수 선언에 대해 DATA_OLD/C/C++2014. 11. 11. 12:13

C/C++에서 흔히 쓰이는 switch 문을 사용할 때, 

case 내부에서 변수를 선언하게 될 경우가 생길 수도 있다.

이때는 switch문 내부의 지역변수로 선언되기 때문에 하나의 case에서 선언된 지역변수가 switch 종료까지 영향을 미칠 수 있다. (사실은 에러가 나면서 컴파일이 안됨)

그렇기 때문에 이 경우에는 해당 변수 선언이 이루어지는 case문을 {}로 묶어주면 해결된다.

'DATA_OLD > C/C++' 카테고리의 다른 글

[C++] const의 쓰임새  (0) 2014.11.11
[C++] 범위 기반 for문  (0) 2014.11.11
[STL] List / Map  (0) 2014.10.21
[STL]Vector  (0) 2014.10.21
[C++] 입력받은 수를 2진수로 출력하기  (0) 2014.10.08
:
Posted by 웽웽
2014. 10. 21. 23:38

[STL] List / Map DATA_OLD/C/C++2014. 10. 21. 23:38

리스트List란

 - 이중 연결 리스트로 구현된 컨테이너

 - 노드끼리는 서로 링크되어 요소 간 논리적인 순서를 기억

 - 인접한 메모리에 배치되어있지 않아도 무관하며, 삽입/삭제가 빠름

 - 리스트 내 요소를 찾으려면 첫 노드부터 순차적으로 찾으므로 읽기 속도는 느림


헤더 파일

 #include <list>


선언 방식

 list<T> name;

//name이라는 이름의 T타입 리스트를 생성


사용 메소드

push_front()                //리스트 앞에 요소 추가

push_back()                //리스트 뒤에 요소 추가

pop_front()                 //리스트 앞의 요소 제거

pop_back()                //리스트 뒤의 요소 제거



///////////////////////////////////


맵Map이란

 - 두 개씩 짝을 이루는 데이터를 저장하는 컨테이너. 첫 번째는 인덱스(first), 두 번째는 데이터(second)로 구성.

 - 항상 정렬된 위치에 데이터를 삽입하므로 이진 탐색이 가능하여 빠른 검색이 가능.

 - 대량의 데이터를 신속하게 검색할 필요가 있을 경우 주로 사용.

 - 인덱스를 이용하여 접근하거나 iterator를 이용한 접근 둘 다 가능.(iterator->first/iterator->second)


선언 방식

#include <map>

list<인덱스 타입/데이터 타입> name;

//name이라는 이름의 맵 생성. 맵의 구조는 <인덱스/스트링> 형식.



'DATA_OLD > C/C++' 카테고리의 다른 글

[C++] const의 쓰임새  (0) 2014.11.11
[C++] 범위 기반 for문  (0) 2014.11.11
[C++] switch문 내에서 변수 선언에 대해  (0) 2014.11.11
[STL]Vector  (0) 2014.10.21
[C++] 입력받은 수를 2진수로 출력하기  (0) 2014.10.08
:
Posted by 웽웽
2014. 10. 21. 22:07

[STL]Vector DATA_OLD/C/C++2014. 10. 21. 22:07

벡터Vector란 


 - 배열처럼 요소에 직접 접근 가능한 배열 같은 기능

 - 요소의 개수에 맞게 자동으로 메무리를 재할당하여 크기를 늘릴 수 있는 동적 배열

 - 템플릿 기반이므로 원하는 타입으로 사용 가능(유저가 선언한 클래스나 구조체도 가능)

 - 읽기 속도가 빠르므로 정렬/이진 탐색등의 알고리즘에 효율적

 - 삽입/삭제 시에는 메모리를 밀고 당기는 처리가 필요하기 때문에 느림



헤더 파일

 #include <vector> 



선언 방식

 vector<T> example(5);

 //T 타입의 크기 5짜리 example이라는 배열 선언



example[index] 방식으로 해당 index에 있는 배열 원소에 바로 접근 가능



사용 메소드

push_back(5)            //맨 뒤에 5를 추가

size()                        //원소의 갯수 반환

begin()                    //벡터의 첫 번째 원소의 주소 반환

end()                        //벡터의 마지막 원소의 주소 반환

front()                       //벡터의 첫번째 원소 반환

back()                        //벡터의 마지막 원소 반환

insert( 주소, 원소 )        //해당 주소에 원소 삽입(배열 갯수 1 증가)

erase( iterator )            //iterator가 위치한 주소의 원소 삭제

resize( 값 )                    //값만큼 벡터 갯수를 재조정. 값 이상일 경우 뒤는 잘림

empty()                        //비어있으면 1, 차있으면 0 반환

at( index )                    //index위치에 있는 원소 값 반환

clear()                          //모든 원소 제거


'DATA_OLD > C/C++' 카테고리의 다른 글

[C++] const의 쓰임새  (0) 2014.11.11
[C++] 범위 기반 for문  (0) 2014.11.11
[C++] switch문 내에서 변수 선언에 대해  (0) 2014.11.11
[STL] List / Map  (0) 2014.10.21
[C++] 입력받은 수를 2진수로 출력하기  (0) 2014.10.08
:
Posted by 웽웽

입력받은 데이터를 32비트라 가정했을 때

31비트만큼 >>연산 후 출력-> 첫 번째 비트

30비트만큼 >>연산 후 출력->두 번째 비트

...

0비트만큼 >>연산 후 출력->마지막 비트


void PrintBits(int number)

{

int bit = 31;

for ( bit; bit >=0 ; --bit )

{

printf("%d", (number>>bit)&1 );

if ( bit%4 == 0 ) //4비트마다 띄워줌

{

printf(" ");

}

}

printf("\n");

}


'DATA_OLD > C/C++' 카테고리의 다른 글

[C++] const의 쓰임새  (0) 2014.11.11
[C++] 범위 기반 for문  (0) 2014.11.11
[C++] switch문 내에서 변수 선언에 대해  (0) 2014.11.11
[STL] List / Map  (0) 2014.10.21
[STL]Vector  (0) 2014.10.21
:
Posted by 웽웽