본문 바로가기

개발/C++3

[모던 C++] 배열 대신 std::vector, std::array를 써보자 특정 크기의 메모리 버퍼를 할당을 하거나 무언가 연속적인 데이터를 저장해야할 때 늘 그렇듯 C스타일 배열(array)를 썼다. 그것이 익숙 하기도 하고 속도면에서도 빠를테니까?unsigned char buffer[1024] ;하지만 C스타일 배열은 버그를 만들어낼 문제가 많고, 인덱스를 잘못 계산하면 메모리 범위를 벗어 날 수도 있다.그래서 그런지.모던(modern) C++에서는 std::vector, std::array를 쓰도록 권장하고 있다.std::vector, std::array는 배열과 마찬가지로 표준에 의해 연속된 메모리에 메모리 블록을 저장하고 유효한 범위 내에서 엑세스 할 수 있는 이터레이터(iterator)도 제공한다. std::vector vec1 = {1, 2, 3, 4, 5};std.. 2025. 7. 6.
C++ 값 카테고리 (lvalue, rvalue...) lvalue, rvalue에 대한 내용을 제미나이에게 물어본 결과이다.msdn c++ 관련 문서에도 나와있는 내용. 맞는지 틀린지는 나중에 읽어봐야겠음.https://learn.microsoft.com/ko-kr/cpp/cpp/lvalues-and-rvalues-visual-cpp?view=msvc-170 값 범주: Lvalues 및 Rvalues(C++)자세한 정보: Lvalues 및 Rvalues(C++)learn.microsoft.com C++ 값 카테고리 (Value Categories)C++의 값 카테고리(Value Category)는 C++11에서 이동 의미론(Move Semantics)이 도입되면서 더 정교하게 분류되었습니다. 이들은 표현식(expression)이 평가될 때 그 결과가 어떤 .. 2025. 7. 6.
[C++] std::variant 쓰는 법 요새 C++에서 사용하고 있는 std::variant라는 걸로 개발을 해보고 있다. 생소해서 사용방법을 잠깐 남겨본다. 약간 C에서 Union같은 느낌도 나지만 그 느낌은 객체스럽다.C++의 std::variant는 여러 타입 중 하나의 값을 가질 수 있는 타입-안전한 유니언(union)이다.std::variant는 C++17부터 표준 라이브러리에 포함되었다고 하니 17이상으로 써야한다.1. std::variant 기본 사용법#include #include int main() { std::variant v; // int, double, std::string 중 하나 저장 가능 v = 42; // int 저장 std::cout (v) (v) (v) std::variant은 int, doub.. 2025. 3. 16.