본문 바로가기

C&C++

(12)
[C++11] std::array c++11에 추가된 고정 크기 배열이다.C언어 배열을 대체할 수 있다.#include #include int main(){ std::array arr1 {1,2,3,4,5}; std::array arr2 {}; // 모든 요소 0으로 초기화 //범위 기반 for for(int i : arr1) std::cout ::iterator i = arr2.begin(); i != arr2.end(); i++) std::cout arr2로 복사 std::copy(arr1.begin(), arr1.begin() + 3, arr2.begin()); return 0;} 장점1. 안전성: 배열의 크기를 컴파일 시간에 결정한다. 따라서 범위를 벗어나는 인덱스 접근을 컴파일러가 잡아낼 수 ..
[C++11] 범위 기반 for (range-based for loop) 컨테이너의 모든 요소를 순회할 때 사용할 수 있다.#include int main() { int arr[] = {1, 2, 3, 4, 5}; // 배열의 각 요소를 출력 for (int num : arr) { std::cout #include #include int main() { std::vector vec = {1, 2, 3, 4, 5}; // 벡터의 각 요소를 출력 for (int num : vec) { std::cout   장점인덱스를 직접 다루지 않기 때문에, 배열 범위를 벗어나는 오류(out of index)를 방지할 수 있다.  주의사항1. 범위 기반 for 루프는 컨테이너의 각 요소를 읽기만 할 수 있다. 따라서 요소를 수정하려면 반..
[C++11] auto 타입 추론 기능.auto x = 10; // int 타입으로 추론auto str = "Hello"; // const char* 타입으로 추론auto d = 3.14; // double 타입으로 추론 std::vector names = {"Alice", "Bob", "Charlie"};for (auto it = names.begin(); it != names.end(); ++it) { // it는 std::vector::iterator로 추론됨 std::cout  장점코드가 간결해진다. 주의사항auto는 초기화 값을 기반으로 추론함. 따라서 초기화 값이 없는 경우에는 사용할 수 없다.
[C++11] 중괄호 초기화 리스트 (initializer list) 중괄호를 이용해 다양한 타입의 객체를 초기화할 수 있다. int x {10}; // x를 10으로 초기화std::string str {"Hello"}; // std::string 객체를 "Hello"로 초기화int arr[] {1, 2, 3, 4, 5}; // 배열을 1, 2, 3, 4, 5로 초기화struct Point { int x; int y;};Point p {5, 10}; // Point 구조체 변수 p를 초기화class MyClass {public: MyClass(int value) : data(value) {} // 멤버 변수 초기화 리스트로 초기화private: int data;};int main() { MyClass obj1(10); // 소괄호 사용,..