본문 바로가기
반응형

C++ Programming9

[C++] Map 공부 C++에서 std::map은 표준 라이브러리 컨테이너로, 키와 값의 쌍을 저장하며 키를 기준으로 정렬된 순서로 유지함 std::map은 빨리 찾을 수 있는 이진 탐색 트리(일반적으로 레드-블랙 트리)로 구현됨. 뭔말이냐? -> 키를 가지고 값을 찾아갈 수 있다 이거다.  std::map의 주요 특징키-값 쌍: 각 요소는 고유한 키와 그 키에 대응하는 값을 가짐자동 정렬: 요소들은 키를 기준으로 자동으로 정렬됨빠른 검색: 이진 탐색 트리를 사용하여 O(log n)의 시간 복잡도로 검색, 삽입, 삭제가 가능함 기본 사용법1. std::map 선언 및 초기화#include #include #include int main() { // 키: std::string, 값: int std::map tray_.. 2024. 7. 6.
[C++ Programming] 문자열 변환 c_str() 함수 결론: c_str() 함수는 주로 C++의 std::string 객체를 C 스타일의 null-terminated 문자열로 변환해야 할 때 사용함. C++의 문자열 라이브러리와 C의 문자열 함수들이 다르게 동작하기 때문인데 c_str()가 주로 사용되는 몇 가지 상황은 아래와 같음.  1. C 라이브러리 함수와의 호환성C++에서는 std::string 객체를 사용하지만, C 라이브러리 함수는 C 스타일 문자열을 요구함예를 들어, printf, strcmp, strcpy 같은 C 표준 라이브러리 함수들을 사용할 때 c_str()를 사용하여 std::string을 C 스타일 문자열로 변환 후 사용해야 되는거 ㅇㅇ#include #include #include int main() { std::string .. 2024. 7. 6.
[C++] Vector 공부 Vector는 #include 을 통해 사용 가능 std:: vector 이런식으로 쓸 수 있고using namespace std; 를 써주면 std 생략가능  1. String 형태의 Vector 를 초기에 10칸 "" 비어있는 값으로 초기화 해준 후 0,11,22~99까지의 값을 넣어준 후    iterator 개념을 통해 strcmp를 통해 vector 내부의 값을 찾는 형태임.  #include #include #define INIT_SIZE 10using namespace std;int main(){ vector tray_map(INIT_SIZE, ""); for (int i = 0; i c_str(), "66") == 0) { index = distance(tray_map.begin().. 2024. 7. 6.
[C++ Programming] Template을 사용한 Doubly Linked List 구현 #include template class Node { public: T data; Node* prev; Node* next; Node(T value) : data(value), prev(nullptr), next(nullptr) {} }; template class DoublyLinkedList { private: Node* head; Node* tail; public: DoublyLinkedList() : head(nullptr), tail(nullptr) {} void insertFront(T value) { Node* newNode = new Node(value); if (!head) { head = tail = newNode; } else { newNode->next = head; head->p.. 2024. 3. 17.
[C++] MFC에서 CString 사용 시 printf 값이 이상할 경우 해결 방법 void RFID_REGISTER::OnBnClickedOk() { CString strText=_T(""); m_Edit_Name.GetWindowText(strText); cout속성(ALT+F7)->고급->문자집합->멀티바이트로 바꿔주면 잘 출력된다. 설정 변경 후 출력하면 정상적으로 나온다. 2023. 10. 31.
[C++] visual studio와 maria db 연동 후 값 읽어오기 visual studio는 다운로드가 되어있는 상태라고 가정하고 maria db를 설치하겠습니다. download 눌러서 들어가고 maria db 11.1.2 stable한 버전으로 받아줍니다 계속 쭉쭉 next~ 계속 쭉쭉 next~ 계속 쭉쭉 next~ 자 여기 중요한데 user id가 root이고 password를 설정해주는 과정입니다. 여기서 입력하는 패스워드는 나중에 visual studio cpp파일에서 작성하는 코드 안에도 들어가기 때문에 까먹으면 안됩니다 next누르고 install 해줍니다. maria db가 깔렸다면 이 프로그램을 실행시켜 줍니다. 신규버튼을 눌러서 정보들을 입력해주고 열기버튼을 눌러주면 db가 열렸습니다. 넣어주고 저장버튼 눌러주면 만들어준 test 이름으로 새로운 테.. 2023. 10. 25.
프로그램 실행 시 메모리 구조 메모리는 크게 4가지 영역으로 나뉜다. 2023. 10. 25.
[C++ Debugging] LNK1120, LNK2001 에러(Static 사용 시) 다음 글과 같이 프로그래밍을 하다보면 .h 헤더파일에 클래스 선언부, cpp파일에 클래스 구현부가 들어가야 한다. [C++] 바람직한 C++ 프로그래밍 방법 간략하게 설명하자면 객체 지향 프로그램 답게 짜야한다는 것인데, 클래스 헤더.h, 클래스 구현부.cpp, main.cpp로 나뉘어야 한다. 여러 클래스가 있다면 클래스의 헤더와 구현부도 클래스의 갯수에 program-developers-story.tistory.com 평소에는 문제 없이 동작하던 코드가 static 멤버 변수를 쓰려고 할 때 발생한다. 아래 코드 처럼 cafe.h에 static 선언 후 cpp파일에 함수를 구현하고 main문에 넣어 동작시켰다. static 관련 함수 45,46번 라인 //cafe.h #pragma once #ifnd.. 2023. 10. 24.
반응형