일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- topic
- 데이터 베이스
- C++
- 프로그래밍
- 마리아 DB
- 그랑사가
- 토픽
- ubuntu
- 오늘도 우라라
- mysql
- 리눅스
- MSG
- Linux
- 우분투
- 오늘도 우라라 펫
- publish
- 환경설정
- Subscribe
- 기초
- 오늘도 우라라 펫 공략
- mariaDB
- install opencv-4.4.0 on ubuntu 22.04
- C언어
- LeetCode
- ros
- 등차수열
- JungOl
- while
- 오늘도 우라라 공략
- 반복문
- Today
- Total
목록프로그래밍/C++ (10)
하루의 쉼터
| unsigned, signed 비교 주의 사항 근래 백준 문제를 풀다 이해 안가는 상황을 마주하게 되어 확인해보았다. const int num = 5; int max =-1 ; std::vector data; for (int i = 0; i > temp; data.push_back(temp); if (temp.size() > max) { max = temp.size(); } } 이런식으로 문제를 풀고 있었는데, 아무리 봐도 if (temp.size() > max) 여긴 true가 나와야 됐는데 false로 떨어져서 왜그럴까 하고 확인해보았다. 결론부터보면 temp.size()는 unsigned int로 반환하기 때문에 int와..
| std::unique_ptr에 대해서 Exclusive Ownership, 포인터를 통해 다른 객체를 소유 및 관리하고 unique_ptr 범위를 벗어나면 해당 객체를 delete 하는 스마트 포인터이다. 하나의 포인터만이 객체를 가리키도록 하며 null 이 아닌 자신이 가리키는 객체를 소유한다. 따라서 복사가 허용 되지 않는다. 필요 헤더 : memory delete 조건 unique_ptr 개체가 종료 되는 경우. opreator=, reset()을 사용하는 경우. 주된 사용처 단일 객체 소유 : 객체의 소유권을 명확하게 할당하고 다른 포인터에게 공유되지 않아야 하는 경우. 자원 관리 : new와 delete를 직접 사용하지 않고 안전하게 관리가 필요한 경우, 네트워크 연결 등 자원 관리가 필요한..
데이터 타입 두 개의 일치 여부를 true / false로 반환하는 기능. 같으면 true 다르면 false 구조 template inline constexpr bool is_same_v = is_same::value; 헤더 파일 #include 적용 예시) auto , decltype 이용 시 판단이 필요한 경우. Test Code #include #include int main() { std::cout
모든 유형의 객체의 최대 크기를 저장 할 수 있는 타입. sizeof의 반환 형태. 크기를 표현 할 수 없는 것은 저장 할 수 없음. 부호 없는 정수형 unsigned int와 공통점은 부호 없는 정수형이며 다른점은 아래와 같다. std::size_t 크기를 나타내는 타입(구현 형태에 따라 달라짐) 메모리 범위의 크기를 바이트 단위로 표현할 수 있는 부호 없는 정수 시스템에 최대 크기의 메모리 블록 unsigned int 4바이트 크기(32 비트 아키텍처 기준) 효율적 수행 헤더 파일 * std::size_t를 사용하기 위해서는 밑에 헤더 중 하나를 사용하면 됨. #include #include #include #include #include #include #include // C++17 support..
| 인라인 함수는 함수 호출을 하러 메모리 참조를 하는 것이 아닌 함수 본문이 직접 코드레벨에서 실행되어 호출하지 않고도 코드 블록이 실행되는 형태. 인라인 함수를 얘기할때 나오는 것 중에 하나는 매크로 함수이다. #include #define SQU(X) ((X)*(X)) int main(){ std::cout
함수의 주소는 함수에 해당하는 기계의 코드가 저장되어 있는 메모리 블록의 시작 주소. 주요 사용처 콜백함수 : 이벤트 핸들러, 인터럽트 핸들러, GUI 이벤트 처리를 위해 함수를 호출하기 위해서는 함수의 주소 값을 알아야하는데 이때 함수포인터를 사용하여 콜백 함수를 구성하게 된다. 이때 콜백함수의 매개변수, 반환 타입을 정의하여 사용한다. 함수포인터 배열 : 함수포인터를 배열로 선언하여 다양한 함수를 동적으로 저장하고 사용 가능하다. 동적로딩 : 라이브러리에서 함수 호출이 가능하며, 런타임 시 필요한 라이브러리를 로드하고 사용가능하다. 코드 재사용 : 다른 함수의 일부 기능을 함수포인터로 사용하여 재사용성을 높일 수 있다. 사용법 테스트) #include int think() { int num = 3; ..
error: no matching function for call to ‘std::basic_ifstream::open(std::__cxx11::string&)’ ifstream file.open(file_name); c++11 컴파일 버전 문제로 file_name.c_str()로 사용하면 문제 일시적으로 해결 가능하며, -std=c++11 를 cmake에 옵션으로 주어 해결 가능 ros cmakelist 참고 add_compile_options(-std=c++11)
| [Error] terminate called after throwing an instance of 'std::logic_error' 1. Error Content terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_M_construct null not valid Aborted (core dumped) 개발 중 에러 메시지 발생 2. Reason std::string or char* 에서 정의(허가)되지 않은 동작 사용 시 발생 되는 에러 3. Solution 배열(문자열)의 범위 외 데이터를 사용하였는지 확인, NULL 체크 확인 등