목록C++ (15)
거의 알고리즘 일기장
#include #include using namespace std; int main() { //+기호 출력 cout.setf(ios::showpos); cout
setw, setprecision #include #include using namespace std; int main() { double a = 1.222222f; char buf[5]; //5개까지 입력을 받음, 마지막은 nullchar용 cin >> setw(5) >> buf; cout
1. iterator란? map, set, vector 등등 여러 컨테이너를 조회하는데 공통적으로 쓰이는 개념이다. 2. 사용법 #include #include #include #include using namespace std; int main() { set s; vector vec = {1, 2, 3, 5}; s.insert(2); s.insert(4); //방법 1 for (auto it = s.begin(); it != s.end(); it++) cout
1. weak_ptr의 필요성 shared_ptr은 같은 곳을 몇 개의 객체에서 가리키는지를 추적하고, 그 수가 0 이 되야만 비로소 해제를 시켜주는 방식의 포인터이다. 주제를 조금 넘어서지만 shared_ptr가 왜 필요한지 정말 간단히 예를 들어보자면 #include using namespace std; int main() { int c = 5; int* a = &c; int* b = a; delete a; //오류!! cout
1. 얕은 복사와 깊은 복사가 필요한 이유 일반적으로 객체를 복사할때는 새로운 객체를 만들어서 그 안에 복사할 객체들을 복사한다. 이때 밑의 그림과 같은 오해를 할수도 있다 하지만, 참조된 값을 복사하면 밑의 그림과 같이 저런식으로 참조값만 복사가 된다. 이게 뭐가 문제냐?? 라고 생각할수도 있지만 충분히 문제가 생길수 있다. 예를들면 만약 하나의 클래스가 있고 A와 B는 그 클래스의 인스턴스이다. 그리고 B는 A의 값을 복사했다. 이때 소멸자에 클래스 포인터 변수를 delete 시켜주는 기능이 있다면 A가 소멸할땐 문제가 없겠지만 뒤이어 B가 소멸할때 분명히 에러가 날것이다. ( 밑의 코드 참조 ) #include using namespace std; class A { public: int value;..