본문 바로가기

메모장/C++

(4)

[c++] async 테스트 #include #include #include #include void for_print(int num) { // std::this_thread::sleep_for(std::chrono::seconds(1)); for (int i = 0; i < 100; i++) fprintf(stderr, "%d번 Thread : %d\n", num, i); } int main() { for (size_t i = 0; i < 100; i++) std::async(std::launch::async, for_print, i); return 0; } 멀티쓰레드로 실행되지 않음. (하나씩 동기 실행됨) int main() { for (size_t i = 0; i < 100; i++) std::future f = std::a..
[C++] 구조체의 크기 (size of struct) 구조체의 크기는 구조체를 구성하는 요소들에 의해 정해 집니다. 하지만 크기를 출력해보면 예상한 값과 다르게 나올때가 있는데, 그 이유와 구조체의 구조에 대해 알아보겠습니다. struct Packet00{ charflags;// 1byte shortcount;// 2byte intmsg;// 4byte } sizeof(Packet00);// 8byte 위 구조체의 크기는 어떻게 정해졌을 까요? 구조체는 구조체가 포함하고 있는 요소들중 가장 큰 값을 기준으로 그 값의 배수만큼의 크기를 가집니다. Packet 구조체의 요소들의 크기를 더한 값은 7byte입니다. 하지만 요소들 중 크기가 가장 큰 int가 4byte의 크기를 가지기 때문에 총 크기는 그 배수인 8byte로 정해집니다. 또 다른 예를 들어보겠습니..
[C, C++] 표준 입출력 실험 (scanf) 입력 포맷 %[*][폭(width)][한정자(modifiers)]타입(type) ex) %d - 정수 입력 %*d - 정수 입력 1번 무시 %10s - 문자를 10개 까지만 입력받음 %10s%*s -문자를 10개 입력 받고 나머지 문자열은 버림 %[^\n] - \n이 나오기 전까지 문자열을 읽어 들인다. 이 경우 공백과 tab을 무시하지 않는다. 1. 문자 #include void manyChar() { char c1, c2, c3, c4, c5; scanf_s("%c", &c1); scanf_s("%c", &c2); scanf_s("%c", &c3); scanf_s("%c", &c4); scanf_s("%c", &c5); printf("%c%c%c%c%c", c1, c2, c3, c4, c5); } '..
C++/STL List를 순회하는 방법 std::list std::list intList; 기존 방법 (iterator 사용) for(std::list::iterator itr = intList.begin(); itr != intList.end(); itr++){ printf("%d",**itr); } 향상된 for문을 이용한 탐색 for (int *ptr : intList){ printf("%d",*ptr); } for each문을 이용한 탐색 for each(int* i in intList){ printf("%d",*i); } iterator를 쓰지 않는 편이 깔끔하다!