lower_bound - 이진탐색(Binary Search)기반의 탐색 방법이다. (배열 또는 리스트가 정렬 되어있어야 한다.) - lower_bound는 찾으려 하는 key값이 "없으면" key값보다 큰 가장 작은 정수 값을 찾는다. - 같은 원소가 여러개 있어도 상관 없으며, 항상 유일한 해를 구할 수 있습니다. - 헤더 파일에 있음 STL의 lower_bound 함수 template ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last, const T& val); 반환형이 Iterator 이므로 vector container인 경우에는 iterator에서 v.begin()을 뺀 값으로 몇 번째 인자인지 계산을 하고, 배열인..
문자열을 나누는 stringstream C++에서 stringstream은 주어진 문자열에서 필요한 자료형에 맞는 정보를 꺼낼 때 유용하게 사용된다. stringstream에서 공백과 '\n'을 제외하고 문자열에서 맞는 자료형의 정보를 빼낸다. #include 전처리 헤더를 포함해야한다. 예제를 보자! #include #include #include int main() { int num; string s; string str1 = "123 456", str2 = "hello world!"; stringstream stream1, stream2(str2); //초기화 stream1.str(str1); while(stream1 >> num){ cout s){ cout s[1] >> s[2] >> s[3]; }
C++에서 algorithm 헤더파일에서 순열을 구할 수 있는 함수가 있다. 함수에 벡터의 iterator 혹은 배열의 주소를 넣으면 다음 순열 혹은 이전 순열의 결과를 벡터나 배열에 적용할 수 있다. 예를 들어 1-2-3-4의 다음 순열은 1-2-4-3, 1-2-4-3의 이전 순열은 1-2-3-4 이다. - next_permutation : 현재 나와 있는 수열에서 인자로 넘어간 범위에 해당하는 다음 순열을 구하고 true를 반환한다. 다음 순열이 없다면(다음에 나온 순열이 순서상 이전 순열보다 작다면) false를 반환한다. - prev_permutation : 현재 나와 있는 수열에서 인자로 넘어간 범위에 해당하는 이전 순열을 구하고 true를 반환한다. 이전 순열이 없다면(다음에 나온 순열이 순서..
algorithm 헤더의 함수 중 두 값을 비교하여 최대, 최소값을 리턴해주는 max(), min() 함수가 있다. 그런데 두 값이 아니라 배열이나 벡터에서 정해진 구간 중 최대/최소값을 알려주는 함수는 없을까? 결론적으로, 존재한다. max_element , min_element 함수란? 이 함수 또한 algorithm 헤더에 있는데, 구간 안에서(array, list, vector 등) 최대, 최소값을 구하는 함수인 max_element(), min_element() 함수가 존재한다. 그런데 이 함수는 값 자체를 리턴하지 않고 그 값의 주소인 iterator(반복자)를 리턴한다. C++에서는 배열 역시 array라는 클래스 형 객체로 취급됩니다. 그래서 주소값에 관해서 이터레이터 연산이 가능하게 되어..
unique 함수는 algorithm 헤더에 포함된다. unique 함수란? vector 배열에서 중복되지 않는 원소들을 앞에서부터 채워나가는 함수입니다. 주의할 점은 unique 함수를 실행하기 전에 정렬되어 있어야합니다. (sort 함수로 정렬하기) 예를 들어 원소가 1, 1, 2, 3, 4, 5, 5, 6 이렇게 구성되어있었다면, 첫번째 원소 1 다음에 또 1이 중복되서 나왔기 때문에 그 다음 원소인 2가 첫번째 원소 뒤로 가게됩니다. 이런식으로 중복된 수는 뒤로 밀리게 되고 결과는 1, 2, 3, 4, 5, 6, 1, 5 입니다. 이 때 unique 함수는 중복되어 밀리게 된 원소의 시작 부분 즉, 1의 주소를 리턴합니다. 중복 원소 제거하기 위 unique 함수와 erase 함수를 이용하여 중복..
▼ 정수 자료형의 크기 및 범위(LLP64/IL32P64, Windows) 자료형크기범위비교 char signed char 1바이트, 8비트 -128~127 unsigned char 1바이트, 8비트 0~255 short short int 2바이트, 16비트 -32,768~32,767 int 생략 가능 unsigned short unsigned short int 2바이트, 16비트 0~65,535 int 생략 가능 int signed int 4바이트, 32비트 -2,147,483,648~ 2,147,483,647 unsigned unsigned int 4바이트, 32비트 0~4,294,967,295 int 생략 가능 long long int signed long signed long int 4바이트, 3..