본문 바로가기

STL

(3)
[C++] Thread(쓰레드, 스레드) 쓰레드(thread)는 라이브러리에 정의되어있다. 쓰레드(thread)란 프로세스내에서 실행되는 실행 단위이다. 주로 프로그램에는 하나의 스레드로 구성되는데 프로그램은 여러개의 스레드를 가질 수 있다. 이러한 방식을 멀티스레드 라고 한다. 멀티스레드를 실행하면 각 스레드들은 일정시간동안 번갈아가면서 실행된다. 예를들어 1을 1000번 출력하는 스레드 T1과 0을 1000번 출력하는 스레드 T2가 있다고할 때 1이 1000번 출력되고 0이 1000번 수행되는 것이 아니라 1과 0이 번갈아가면서 실행된다(정확히 101010...이 출력되지는 않고 실행할때 마다 조금식 다르게 출력된다.) C++에서 스레드는 아래와 같이 사용한다.thread(함수);#include #include using namesapce ..
[C++ STL] 벡터(vector) C++에서 배열의 인자는 상수이기 때문에 길이를 변경할 수 없다. 프로그래밍을 하다보면 동적인 길이의 배열을 생성해야하는 경우가 있다. C++에서 동적 배열을 생성할 수 있지만 배열의 크기를 늘리는 과정은 코드가 비효율적이되고 복잡하다. 벡터(Vector)는 런타임에 그 크기가 변경될 수 있는 배열과 같은 자료구조다. 벡터는 배열과 거의 유사하게 사용할 수 있다. 벡터는 인덱스구조를 사용하기 때문에 임의 접근이 가능하고 탐색이 빠르다. 하지만 인덱스구조를 항상 유지하기 위해서 임의의 위치에 있는 원소를 삽입 및 삭제하기 위해서는 많은 시간이 소요된다. 벡터는 라이브러리에 정의되어있고 네임스페이스 std에 정의되어있다. #include using namespace std; 벡터의 생성 벡터는 일반 템플릿 ..
[C++ STL] C++ String(스트링) C++에서는 STL에서 제공하는 스트링(String) 클래스를 제공한다.string 클래스는 라이브러리에 포함되어있고 string은 std에 규정되어 있으므로 네임스페이스 std를 추가해주어야 한다. #include using namespace std; STL에서 제공해주는 이 string 클래스는 클래스지만 입출력 연산자 와 인덱스 []연산자,연결하는 +연산자, ==연산자등 다양한 연산자가 정의되어있어 프로그래머가 일반 변수처럼 사용할 수 있다. 그리고 string은 클래스이기때문에 .empty(), at(i)와 같은 멤버 string 함수 또한 사용할 수 있다. 생성인자가 없는 생성자, string str; const char arrayt인 "hello"를 인자로 가지는 생성자string str("h..