본문 바로가기

Language, IDE

(48)
[C++] Thread(쓰레드, 스레드) 쓰레드(thread)는 라이브러리에 정의되어있다. 쓰레드(thread)란 프로세스내에서 실행되는 실행 단위이다. 주로 프로그램에는 하나의 스레드로 구성되는데 프로그램은 여러개의 스레드를 가질 수 있다. 이러한 방식을 멀티스레드 라고 한다. 멀티스레드를 실행하면 각 스레드들은 일정시간동안 번갈아가면서 실행된다. 예를들어 1을 1000번 출력하는 스레드 T1과 0을 1000번 출력하는 스레드 T2가 있다고할 때 1이 1000번 출력되고 0이 1000번 수행되는 것이 아니라 1과 0이 번갈아가면서 실행된다(정확히 101010...이 출력되지는 않고 실행할때 마다 조금식 다르게 출력된다.) C++에서 스레드는 아래와 같이 사용한다.thread(함수);#include #include using namesapce ..
[Java 자바] string to int, int to string string to int - string에서 int로 변환Integer.parseInt() 사용. -> Interger.parseInt(string) int intValue = Integer.parseInt("3"); int to string - int에서 string으로 변환 Integer.toString() 사용. -> Integeer.toString(int); string str = Integer.tostring(3);
[C++] string to int, int to string string to int - string에서 int로 변환atoi()함수 사용. -> atoi(char*)인자가 char*형이기 때문에 c_str()함수로 변환해주어야함.string str = "34"; int intValue = atoi(str.c_str()); int to string - int에서 string으로 변환to_string()함수 사용. -> to_string(int)int intValue = 5; string str = to_string(intValue);
[C++ STL] 벡터(vector) C++에서 배열의 인자는 상수이기 때문에 길이를 변경할 수 없다. 프로그래밍을 하다보면 동적인 길이의 배열을 생성해야하는 경우가 있다. C++에서 동적 배열을 생성할 수 있지만 배열의 크기를 늘리는 과정은 코드가 비효율적이되고 복잡하다. 벡터(Vector)는 런타임에 그 크기가 변경될 수 있는 배열과 같은 자료구조다. 벡터는 배열과 거의 유사하게 사용할 수 있다. 벡터는 인덱스구조를 사용하기 때문에 임의 접근이 가능하고 탐색이 빠르다. 하지만 인덱스구조를 항상 유지하기 위해서 임의의 위치에 있는 원소를 삽입 및 삭제하기 위해서는 많은 시간이 소요된다. 벡터는 라이브러리에 정의되어있고 네임스페이스 std에 정의되어있다. #include using namespace std; 벡터의 생성 벡터는 일반 템플릿 ..
아스키코드 (ASCII Code) 표 아스키 코드(ASCII Code)표 아스키 코드는 C, C++, Java등 다양한 언어에서 공통으로 사용된다.
[C++] 예외 처리 (Exception) C++에서는 예외 처리(Exception)를 제공한다. 예외처리는 일반적이지 않은 상황이 발생하였을때 예외처리 신호를 보내어 현재 실행중이던 코드를 정지하고 지정해준 코드를 실행한다. 예를들어 0으로 나누는 경우 등이 있을 수 있다. 이외에도 다른 복잡한 예외 상황이 있을 수 있다. 예외 처리는 간단하다. try문에 실행코드를 넣고 예외상황에 throw문을 던지면 try문이 종료되면서 catch가 수행된다. try{ //실행코드 throw type; //실행코드 }catch(type 변수명) { //catch시 실행될 코드 } 예를들어 0으로 나누는 경우 예외처리를 보자. int main() { try { int num; cin>>num; if(num == 0) throw num; } catch(int ..
[C++] 템플릿(template) C++에서는 템플릿(template)을 제공한다. 템플릿(template)은 형판, 견본, 본보기라는 뜻으로 C++에서도 함수나 클래스를 정의할 때 타입에 대한 틀을 제공해준다. 함수나 클래스에서 각 타입에 대한 정의를 일일이 작성하지 않고 템플릿을 사용함으로써 코드에 효율성을 준다. 변수 타입만 다른 함수에 대해 템플릿을 사용하면 타입을 미리 지정해주지 않아도 사용시에 컴파일러가 그 타입에 대한 정의를 오버로딩 해준다. 템플릿을 사용하지 않으면 코드가 매우 비효율적이 된다. 예를들어 다음을 생각해보자. void swapValues(int& value1, int& value2) { int temp; temp = value1; value1 = value2; value2 = temp; } 위와같은 int형 ..
[C++] 상속 (inheritance) C++에서는 상위 클래스로부터의 상속을 제공한다. 상속(inheritance)은 일반적인 뜻의 상속처럼 한 클래스로부터 멤버함수와 멤버변수를 물려받게 되는것을 말한다. 물려주는 클래스를 부모 클래스(parent class)또는 슈퍼 클래스(superclass)또는 기반 클래스(base class)라고 한다. 그리고 물려받는 클래스는 자식 클래스(child class), 혹은 부 클래스(subclass)또는 파생 클래스(derived class)라고 한다. 상속받은 클래스를 다시 상속받을 수 있고 여러 클래스로부터 상속을 받을수도 있다. 상속받은 클래스를 다시 상속받는 것은 일반적이지만 여러 클래스로부터 상속을 받는 것은 안전하지 않을 수 있다. 여러 클래스로부터 상속받는 것을 다중 상속이라고 하는데 이렇..