반응형

1. 'strcpy()' vs '=' / 'assign()' 

 

c++로 문제를 해결하던 중 string 문자열을 복사하는 코드에서 'strcpy()'를 사용해서 문자열을 대입하려고 했더니, strcpy의 인자인 const char* 타입은 string과 어긋나면서 오류가 발생하였다!

 

더보기

strcpy 함수는 C 스타일의 문자열을 복사하는 함수로서, 다음과 같은 형태를 가집니다

: char* strcpy(char* destination, const char* source). 

 

c++에서 string문자열을 복사/대입하려면 std::string멤버 함수인 assign() 또는 = 연산자를 사용하면 해결된다!

확실히 c보다 c++은 문자열에서도 제약을 덜 받는 느낌이다,,

 

2. 'strcmp()' vs '=='

 

strcmp역시 c언어 스타일에서 사용하는 방식이다. 위에서와 동일한 오류가 발생한다.

c++에서는 단순히 ==을 통해 문자열을 비교할 수 있다!

 

3.vector의 맨 앞 원소를 삭제할 때

 

vector.erase(vector.front())

 

4.vector의 원하는 위치에 원소를 삽입할 때

 

vector.insert(vector.begin()+i, temp);

 

인덱스 정보를 넣는 곳에 정수를 입력해서 오류가 발생하였다!

iterator를 인자로 받기 때문에, 위와같이 vector.begin()으로 인덱스 정보를 가져와야 한다.

i는 원하는 인덱스번호라고 생각할 수 있고, temp는 넣고자 하는 값이다.

 

5. auto 자료형 추론

auto는 변수 선언 시 자료형을 명시하지 않아도, 대입된 값을 통해서 컴파일러가 알아서 자료형을 추론한다.

코드가 간결해지고 유지보수에는 좋으나, 가독성이 떨어질 수 있음!

 

 

vector의 기본 쓰임에 대해 복습할 필요가 있음을 느낀 문제..

 

 

 

반응형

+ Recent posts