본문 바로가기

C++16

[c++] string 의 substr, find string 관련 문제를 풀던 중 사용법을 잊어서 다시 정리한다 substr() : 해당 인덱스 범위의 문자열을 반환한다. 전체 문자열.substr(시작 인덱스 위치, 뽑아낼 문자 개수) // 2번째 인자를 입력하지 않으면 문자열 끝까지 반환한다 find() : 인자로 검색할 문자를 받아 처음으로 검색되어 나온 위치의 인덱스를 반환한다. 검색대상 문자열.find(검색할 문자) = int 검색 문자의 첫인덱스 // 못찾으면 마지막 요소 뒤(string::npos) 를 반환 2022. 6. 14.
c++ 배열을 인자로 받는 함수는 함수의 크기를 인자로 같이 받아야한다 int odap(int arr[]) { } 만으로는 배열의 크기를 알 수 없으므로 배열을 활용할 수 없다 함수내의 자원만으로 받은 배열의 크기를 구하는 방법은 없다 배열을 받는게 아니라 그 배열의 포인터로 인자를 받기 때문이다 포인터는 시작 주소만 있고 데이터(배열)의 끝을 모르므로, c++ 에서 함수 작성시, 배열을 인자로 받을때는 아래와 같이 사용하여 int odap(int arr[], int size) 꼭 배열의 크기을 함께 입력 받도록 하자 몇시간을 해도 안됐었는데... 이런 이유였다니... 2022. 6. 13.
배열 제어 함수 fill() : 특정 위치의 배열을 초기화한다 fill(시작위치, 끝나는 위치, 초기화 값) // 끝나는 위치 = 마지막 요소 뒤의 위치 memset() : 배열 전체를 초기화 한다 memset(초기화 대상 배열, 초기화 값, 배열의 크기) memcpy() : 배열의 값을 다른 위치의 메모리에 복사한다 (=배열 값을 다른 배열에 복사) 배열의 값을 수정 시 원본을 온전히 남기고 싶을때, 배열 temp 에 원본 배열 a를 복사하면 a를 수정해도, temp 에 담은 a의 데이터를 복사해와서 다시 a를 만들어 복구할 수 있다 memcpy(붙여넣을 곳의 배열명, 복사할 배열명, sizeof(복사할 배열명) // a를 수정하는 로직을 구현 후, 다시 a를 원상복귀 할때 아래와 같이 사용한다 memcpy(temp,.. 2022. 6. 8.
[c++] namespace 자바에서 두 메소드의 이름이 같아도 소속된 패키지나 클래스가 다르면 다른 메소드이듯이 C++ 에서도 함수명끼리 겹치지 않도록 namespace라는 상위 분류를 갖게하여 각 namespace가 가지는 함수를 호출해서 사용하도록 하였다 #include 로 불러온 파일 내에도 여러 namespace들이 있을것이다. 즉, 함수목록을 모듈화하는데 사용되었고 우리는 그 namespace 안에 있는 함수들을 알고 알맞은 방법으로 호출하면 되는것이다 자바에서 클래스명.메소드명 을 통해서 메소드를 호출하듯이 c++ 에서는 아래의 방법으로 함수를 호출할 수 있다 namespace의 이름::호출하는 함수명 하지만 매번 namespace의 이름을 쓰기 번거로우니 #include 문의 아래에 아래처럼 작성하여 사용한다 usin.. 2022. 6. 7.