Category: c++

vcpkg install curl : Error: Building package zlib:x86-windows failed with: BUILD_FAILED

vcpkg curl (이외에도 다수 모두 같은증상) 설치중 오류 발생 우선 warning 은 배제하고 error 메세지를 먼저 파악 하는 편 이지만visual studio 의 언어팩 (eng)을 설치하고 그김에 설치되어 있지 않던 c++ 패키지들을 설치해두었다 언어팩의 문제 였는지 이후에는 설치가 정상적임을 확인 가능했다 로그나 에러 메세지의 스택 추적은 굳이 해보지않았지만..

[memo] socket models

socket 사용의 여러 모델 blocking scoket 일반 blocking socket 을 이용한 send,recv 매 send,recv 시 마다 동기 작업으로 여러 소켓을 동시 처리(다수의 client) 하기 위해서는 일반적으로 thread 를 각 소켓마다 할당해 recv,send 하는 식의 스레드 를 활용 non blocking socket non bloking mode socket 으로 전환하는 경우 비동기 send,recv 가능 send,recv 이후 종료시까지 기다리지 않게 […]

스트링 관련 leetcode 문제

ide 를 사용하지 않고 문제를 풀어보기로leetcode 의 경우 include 에 대해 명시하지 않아도 사전에 include 되어 있는 라이브러리들이 대다수 https://leetcode.com/problems/valid-palindrome/ 125. Valid Palindrome https://leetcode.com/problems/reverse-string/ 344. Reverse String https://leetcode.com/problems/reorder-data-in-log-files/ 937. Reorder Data in Log Files https://leetcode.com/problems/most-common-word/ 819. Most Common Word테스트케이스 단어의 구분자가 ‘ ‘ 공백 ‘,’ 콤마로 복합적인데 그걸 간과하고 stringstram getlin 으로 tokenize 하려고 하다가 코드가 꼬였다 실제는 단어보다 […]

c++ 문자열 입력받기 (getline, stringstream, tokenize)

여러 줄의 문자열, 숫자 를 space, comma 를 구분하며 여러줄을 입력받을때 cin >> xxx;cin 은 개행문자를 입력받지 않는다 5\n 을 처음 입력시 5에 대해서 cnt 에 저장하고 남은 \n 은 getline 으로 받고 버려줍니다(다른 방법도 있지만 코딩테스트 때의 입력 데이터를 만들 기 위해서는 간단하게 data 만 만들기 위함) 해당 횟수만큼의 row 를 입력하는 케이스가 보통이니 […]

c++ std priority_queue (heap)

https://en.cppreference.com/w/cpp/container/priority_queue Working with a priority_queue is similar to managing a heap in some random access container, with the benefit of not being able to accidentally invalidate the heap. priority_queue : heap heap 으로 이해 #include <queue> queue 와 같은 최-상단 pop 방식 이기에 queue 이름을 가짐 기본 순서는 low to high 로 최대값을 pop,top 으로 가져온다 (greater<>) function object […]

std:: unordered_map,set

c++11 이후 표준으로 포함된 unordered_map,set둘다 일반 (ordered)map,set 과 내부 구조는 아예 다르다사용방법 이 비슷하기에이름이 같은 map,set 일 뿐(ordered)map ,set 은 트리구조로 되어 있어 삽입하며 정렬되고 정렬된만큼 검색은 Olognunordered_map,set 은 hashtable 기반으로 키를 hash 를 만들고 배치하고 접근하기 때문에 삽입할때 O1, 탐색할때 O1 random access 가 가능하며 [ ] 연산자로 접근 가능하다 https://en.cppreference.com/w/cpp/container/unordered_map https://en.cppreference.com/w/cpp/container/unordered_set

RAII 패턴

RAII : Resource Acquisition Is Initialization 자원획득 은 초기화 직역하면 이상한데 이 패턴의 목적은 사실 획득에 있다기보다획득한 자원은 초기화 한다 라고 해석 하는게 이해하기 쉽다 흔히 고장나 페기된 auto_ptr 같은 스마트 포인터가 이 패턴에 해당하고 COM/ATL 에서 사용되던 ComPtr 등 그리고 현대에와서 모던 c++ 에 사용된 std::mutax 와 함게 사용되는 lock_guard 관련 패턴이 이런 방식으로 […]

gtest 미리보기

기본적으로 각 테스트 케이스는 위와 같은 모양이 된다TEST 매크로는 대충 이런 정의로 되어 있다 TEST 의 첫번째 인자는 임의의 string 을 입력한다는 생각으로 현재 구현할 test case 의 group 이름 처럼 생각하고 부여 하면 된다 두번째 인자는 해당 test case 의 세부 test 단위 의 이름을 마찬가지로 string 이라고 고려하고 넣어준다 실제 body 에서는 꼭 […]