반응형

모던 C++11 5

[ C++ ] mutex 개념 및 예제

뮤텍스는 스레드로 동시에 여러 개를 처리할 떄 모든 스레드가 접근하는 데이터를 하나의 스레드가 먼저 사용할 수 있도록 독점적으로 자원을 가져다 사용할 수 있도록 해주는 방법입니다. 자세한 내용은 다음에 기회가 된다면 운영체제 관련 포스팅을 진행해보도록 하겠습니다. 관련 예제에 대해 알아보겠습니다. #include #include #include #include #include #include using namespace std; int value;mutex value_mutex; void increase_value(){ // 뮤텍스를 이용하여 동기화 value_mutex.lock(); value++; cout

SW/C++ 2018.11.16

[ C++ ] thread 개념 및 예제

프로그래밍에서 동시에 여러가지 동작을 하기 위해 스레드(thread)라는 개념을 도입하였습니다. 스레드는 하나의 프로그램이 마치 동시에 여러 개의 동작을 하는 것과 같은 효과를 표현하기 위해 운영체제에 도입된 개념입니다. 저는 웹 서핑을 할 때 주로 크롬을 이용합니다. 크롬은 움직이는 이미지를 보여주면서 그 동시에 음악도 들려줍니다. 휴대전화에서는 음악을 들으면서 메신저를 0할 수 있습니다. 이처럼 하나의 프로그램 안에서 동시에 여러개의 흐름이 있는 것처럼 효과를 내는 것이 바로 스레드라고 생각하시면 됩니다. 스레드는 굉장히 많이 사용되는 개념입니다. 반드시 다시 공부해나가야할 개념인 것 같습니다. 관련 개념으로 mutex와 atomic도 모두 스레드와 관련된 내용입니다. 스레드는 c++ 표준에는 자리 ..

SW/C++ 2018.11.16

[ C++ ] foward_list 개념 및 예제

foward_list 기존의 C++에서 list라는 동적인 자료를 저장하는 자료구조를 제공했습니다. list는 원소별로 이전 원소와 다음 원소를 가리키는 정보를 특별히 가지는 자료구조인 것입니다. 원소가 많아지면 원소의 개수만큼 이전 원소와 다음 원소를 가리키는 자료까지 생겨나게 됩니다. 따라서 원소의 개수가 많아지면 그만큼 추가적인 정보까지 생겨 오버헤드를 유발할 수 있습니다. 이에 착안한 foward_list는 이전 원소를 가리키지는 않고 다음 원소만 가리킴으로써 원소가 많아져도 list보다는 더 적게 추가 정보가 생기도록 하였습니다. list보다 속도가 더 빠르게 설계되어 다음 원소만시켜도 괜찮은 데이터에 맞게 설계된 자료구조입니다. #include #include using namespace st..

SW/C++ 2018.11.16

[ C++ ] array 개념 및 예제

array는 C에서 [] 기호를 사용해 배열을 선업합니다. C에서 사용한 배열과 동일한 배열을 선언하지만 컨테이너와 같이 반복자와 같은 컨테이너에서 사용할 수 있는 메소드를 제공합니다. empty 컨테이너가 비어있는지 확인합니다. size 원소의 개수를 확인합니다. fill 모든 원소를 동일한 값으로 채워 넣습니다. std::array arrayValue {1,2,3,4,5,6,7,8,9,10} Colored by Color Scriptercs array를 이용하여 int형이고 원소가 10개 있는 배열을 선언합니다. array 키워드 바로 뒤에 데이터형이고, 그 뒤 개수를 나타내는 것입니다. arrayValue.empty() cs arrayValue가 비었는지 묻는 것입니다. 비어있따는 것은 원소가 없다..

SW/C++ 2018.11.16

[ C++ ] tuple 개념 및 예제

tuple 튜플의 뜻을 아시나요? 튜플은 사물의 유한한 순서를 뜻합니다. 튜플은 lisp, python, linda 등의 언어에서 두 개 이상의 순선대로 정렬된 서로 다른 값들의 모임을 정리할 때 이용합니다. 다른 객체 지향 언에서 사용되는 튜플을 C++11에서 채택하여 제공하는 것입니다. std::typle tupleValue(10,x,"string");cs 튜플의 선언 방식은 위와 같습니다. tuple 키워드를 이용하여 꺽쇠 안에 묶기 원하는 데이터 형을 나열합니다. 튜플은 함수에서 반환값이 두 개 이상일 경우에 사용하면 효과적입니다. 두 개 이상의 반환값을 전달하기 위해 포인터나 참조를 이용하거나 구조체를 만들어 전달하는 불편함이 있었습니다. 튜플을 이용한다면 반환값을 몇개이던지 전달할 수 ..

SW/C++ 2018.11.16
반응형