c++에서 char형에서 string으로 바꾸는 방법을 간단하게 소개해 드리겠습니다. 먼저, string의 생성자를 이용하는 방법입니다. 이 문서에서는 6번째 방법으로 생성한 것입니다. 앞에 있는 n은 몇 번 반복할 것인가를 의미합니다. 다음에 2번째는 char형이 오게 됩니다. 1번째 예제는 char형 'A'를 문자열 "A"로 바꾼다는 것입니다. 그러기 위해서는, 'A'라는 문자열이 1번만 반복되면 됩니다. 따라서 7번째 줄처럼 string k2 = string(1, ch); 로 생성해 주면 됩니다. 여기서 ch는 'A'였습니다. 결과를 볼까요? 길이는 1이고, "A"라는 string이 생성되었음을 볼 수 있습니다. 만약에 string(2, 'C'); 라 하면 어떤 문자열이 생성될까요? 'C'가 2번 ..
C++ 검색 결과
c++에서 list는 insert되거나 delete 되는 위치를 알 수 있을 때, insert나 delete를 빠르게 하기 위해서 씁니다. erase를 했으니, c++ list의 insert함수를 알아보고 어떻게 사용하는지 간단하게만 알아봅시다. 먼저 예제입니다. int를 저장하는 리스트 my_list가 있네요. foo 함수는 리스트 내부에 있는 친구들을 향상된 for문으로 head부터 tail까지 순회합니다. 다음에 insert할 위치와 insert할 item을 받아서, 특정 위치에 아이템을 넣습니다. 연산이 일어날 위치를 알고 있다면, 넣는 것이나 제거하는 것이나 시간이 오래 걸리지는 않습니다. 물론 다른 용법도 문서에 언급되고 있기는 하지만, 저 같은 경우 백준에서 문제를 풀 때 1번째, 단일 원소..
안녕하세요. 이번 시간에는 c++ list의 erase 함수 사용법을 간단하게 알아봅시다. 이 함수는 범위 제거를 하거나, 원소 하나만 제거를 할 때 쓰이는데요. 보통 저는 전자보다는 후자의 용도로 많이 쓰곤 합니다. 사실 후자의 용도만 알아도 큰 문제 없기도 하고요. 예제를 보겠습니다. 먼저, 1, 2, 3, 4, 5를 순서대로 넣은 list가 하나 생성됩니다. 9번째 줄에, 리스트의 시작을 가리키는 이터레이터 iter를 리턴합니다. 그러면 iter는 1을 가리키게 됩니다. iter++을 하게 되면, 다음 원소를 가리키게 되는데요. 1 다음에 있는 원소는 2였으므로, 2를 가리키게 됩니다. 이 상태에서 (*iter)를 출력하면 2가 됩니다. 그 다음이 문제인데요. iter = my_list.erase(..
제가 낸 3회 코딩테스트 문제 중에 가희와 쓰레기 놀이가 있었습니다. 이 문제의 input에 대한 output 파일을 생성하기 위해 작성한 파일이 이 코드였는데요. 생각보다 오래 걸렸답니다. 대략 13 ~ 14초 정도 걸렸던 걸로 기억해요. 이 로직을 그대로 validator에도 썼기 때문에, 벨리 데이터가 시간 초과가 나기도 했습니다. 제가 작성했던 처음 버전의 솔루션 코드를 유심히 보실 필요는 있습니다. 왜냐하면, 생각보다 비효율적인 일을 하고 있기 때문입니다. 이 부분을 먼저 보겠습니다. new_ref의 내용을 그대로 ref에, new_con의 내용을 그대로 con에 넣어버리는 부분입니다. bfs 함수가 끝나기 직전에 호출하는데요. 이 두 친구는 bfs 내의 지역 변수로 선언되어 있어요. 이 부분입..
no time long see. 이번 시간에는 c++20부터 적용된 bit 안에 있는 popcount 메소드에 대해 알아봅시다. 사실 코딩 테스트에서 켜진 비트수를 세는 문제, 혹은 이를 응용한 문제가 왕왕 보이는 편이기도 하고요. 그리고 그 이전에는 어떻게 해야 했는지 보도록 하겠습니다. popcount 메소드는, unsigned integer 형에 대해서만 동작합니다. 어떻게 동작하나만 보도록 하겠습니다. 7번째 줄에, popcount(i)가 있는데요. 이는 15에서 켜진 비트 수를 세라는 의미입니다. 몇 개인가요? 4개입니다. 따라서, 4가 출력됩니다. 예제 2번을 보시면, for loop를 돌면서 i의 켜진 비트 수가 몇 개인지를 출력합니다. 6번째 줄에서 for loop를 보면, i가 int형으..
최근댓글