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의 기본 쓰임에 대해 복습할 필요가 있음을 느낀 문제..
'언어 > C++' 카테고리의 다른 글
[c++] printf 출력문에서 소수점 조정 출력 방법 (0) | 2023.12.10 |
---|---|
[c++] pair vector, vector sort 개념 정리 (0) | 2023.11.03 |
[c++] <iomanip> 헤더에 정의된 setprecision으로 소수점 반올림하기 (0) | 2023.11.01 |
[c++] 2차원 배열 동적 할당 시 유의할 점 (0) | 2023.11.01 |
[c++] 입출력 스트림 시간 단축 방법 (cin, cout) (0) | 2023.11.01 |