본문 바로가기

C++16

C/C++ memset() 메모리 블록을 채우는 함수 #include void *memset(void *dest, int c, size_t count); memset() 함수는 dest 포인터가 가리키는 곳부터 count 바이트만큼 값 c로 채운다. 값 c는 부호없는 문자(unsigned character)로 변환된다. 매개변수 void *dest : 채울 메모리 블록에 대한 포인터 int c : 설정할 값, 넘겨지는 값은 int이지만 부호없는 문자로 변환되어 메모리 블록에 채워진다 size_t count : 값으로 채워질 바이트(byte)의 수 반환값 dest에 대한 포인터를 반환 코드 예시 #include #include int main(void) { char buffer[256]; char *string; memset(buffer, 0, sizeof(.. 2021. 7. 4.
C/C++ fgets() 문자열 읽기 함수 #include char *fgets(char *string, int n, FILE *stream); fgets() 함수는 stream에서 문자열을 읽는다. 문자열을 읽을 때, 첫 번째 개행 문자를 포함하는 곳까지 읽거나, stream의 끝까지 읽거나, $n-1$개의 문자를 읽는다. 읽은 문자열을 string에 저장하고 끝에 \0을 추가한다. $n$이 1이면 빈 string이 된다. 매개변수 char *string : stream에서 읽은 문자열을 복사해 저장할 문자 배열에 대한 포인터 int n : string에 복사될 최대 문자 수 FILE *stream : FILE 객체에 대한 포인터, 인자로 stdin을 사용해 표준 입력(standard input)으로 부터 입력 받을 수 있다 반환값 함수 호출이.. 2021. 7. 4.
C++ enum class와 enum C++의 enumeration에는 크게 enum class와 enum이 있다. enum class는 scoped enum이라 하며, C와의 호환을 위해 unscoped enum인 enum이 있다. user-defined type이다. enum class는 ::을 이용해 값을 가져온다. enum class가 더 안전하다. enum class Vehicle { Car, Bike, Truck }; Fruit suv_vehicle = Vehicle::Car; #include enum class Race { Dinan, Teklan, Ivyn, Moiran, Camite, Julian, Aidan }; int main() { Race race = Race::Teklan; switch (race) { case Ra.. 2021. 6. 10.
C++ STL Maps 사용하는 방법 C++ STL Maps Maps은 associative container이다. key value와 mapped value의 조합으로 구성되는 원소를 저장하는 associative container이다. std::map 선언하기 map m; // creates a map m where key_type is of type string and data_type is of type int map의 길이 int length = m.size(); // gives the size of the map map에 삽입하기 m.insert(make_pair("hello", 9)); // here the pair is inserted into the map where the key is "hello" and the value.. 2019. 4. 23.
C++ STL Sets 사용하는 방법과 멤버 함수 C++ STL Sets 집합은 C++ 표준 템플릿 라이브러리 중 하나이다. 집합(Sets)은 특정한 순서로 특정 원소를 저장하는 컨테이너(container)이다. 주로 사용되는 함수들은 아래와 같다. 선언은 다음과 같이 한다. sets s; // creates a set of integers집합의 크기는 다음과 같이 구할 수 있다. int length = s.size(); // gives the size of the set.집합에 새로운 원소는 insert() 함수를 이용한다. s.insert(x); // inserts an integer x into the set s원소를 지울 때는 erase() 함수를 이용한다. s.erase(val); // erases an integer val from the s.. 2019. 4. 23.
C++ Lower Bound-STL 사용하는 방법 C++ STL Lower Bound 사용하기 lower_bound( begin(), end(), value)[ begin(), end() ) 범위 중에서 value 값이 나타나는 하한을 반환한다. 만약 value가 없다면, value보다 큰 값중에서 가장 작은 값을 반환한다. 즉, value 와 같거나 큰 값이 처음 나타나는 위치를 반복자로 반환한다. 예제 1 #include #include #include using namespace std; int main() { vector v; // vector v.push_back(10); v.push_back(20); v.push_back(30); v.push_back(22); //sort(v.begin(), v.end()); vector::iterator i.. 2019. 4. 23.
C++ 반복자란 무엇인가? 반복자 iterator의 개념 반복자는 포인터와 상당히 비슷하다. 컨테이너에 저장되어 있는 원소들을 참조할 때 사용한다. 포인터와 비슷한 객체이다. 반복자는 컨테이너에 저장된 원소를 순회하고 접근하는 일반화된 방법을 제공한다. 반복자는 컨테이너와 알고리즘이 하나로 동작하게 묶어주는 인터페이스 역할을 한다. 알고리즘마다 다른 방식으로 컨테이너를 순회할 수 있기 때문에 반복자에도 여러 종류가 있다. An iterator is an object that can "iterate" (navigate) over elements. - The C++ Standard Library 반복자는 컨테이너 내부의 원소(객체)를 가리키고 접근할 수 있어야 한다. 반복자는 다음 원소로 이동하고 컨테이너의 모든 원소를 순회할 수 있.. 2019. 4. 23.