C 113

최적의 자동 완성/제안 알고리즘, 데이터베이스 [C++/C]

최적의 자동 완성/제안 알고리즘, 데이터베이스 [C++/C] Google, Firefox 일부 AJAX 페이지에는 사용자가 문자를 입력하는 동안 가능한 항목 목록이 표시됩니다. 자동 완성 구현을 위한 좋은 알고리즘, 데이터 구조를 제공할 수 있는 사람이 있습니까?trie는 프리픽스와 일치하는 단어를 빠르게 찾기 위해 사용할 수 있는 데이터 구조입니다. 편집: 다음 예시는 자동완성 http://rmandvikar.blogspot.com/2008/10/trie-examples.html을 구현하는 방법을 보여 줍니다. 다음은 3가지 자동 완성 구현의 비교입니다(단, C++가 아닌 Java). * In-Memory Trie * In-Memory Relational Database * Java Set 키를 조회할..

programing 2022.07.31

uint32_t 및 size_t의 printf 형식 지정자

uint32_t 및 size_t의 printf 형식 지정자 다음과 같은 것이 있습니다. size_t i = 0; uint32_t k = 0; printf("i [ %lu ] k [ %u ]\n", i, k); 컴파일 시 다음과 같은 경고가 표시됩니다. format ‘%lu’ expects type ‘long unsigned int’, but argument has type ‘uint32_t’ 부목을 사용하여 실행한 결과 다음과 같은 결과가 나왔습니다. Format argument 1 to printf (%u) expects unsigned int gets size_t: k 조언해 주셔서 감사합니다.해라 #include ... printf("i [ %zu ] k [ %"PRIu32" ]\n", i, k);..

programing 2022.07.31

무엇 CHAR_BIT은?

무엇 CHAR_BIT은? http://graphics.stanford.edu/~seander/bithacks.html에서 분지 없이 정수를 절대 값(복근)을 계산하:코드를 인용해. int v; // we want to find the absolute value of v unsigned int r; // the result goes here int const mask = v >> sizeof(int) * CHAR_BIT - 1; r = (v + mask) ^ mask; -특허권 변화: r = (v ^ mask) - mask; 뭐가CHAR_BIT어떻게 사용합니까?CHAR_BIT의 비트수입니다.char. 요즘엔, 거의 모든 아키텍처들이 아니라 그 사건 항상 바이트당 8비트를 사용한다.몇몇 나이 든 기계7-bi..

programing 2022.07.31

perror("...")와 fprintf("stderr, "...")는 언제 사용해야 합니까?

perror("...")와 fprintf("stderr, "...")는 언제 사용해야 합니까? man 페이지와 일부 코드를 읽는 것은 언제 사용해야 하는지 또는 더 나은지 이해하는 데 큰 도움이 되지 않았습니다.perror("...")또는fprintf(stderr, "...").부르기perror해석된 값을 얻을 수 있습니다.errno는 POSIX syscalls에 의해 써지는 스레드 로컬 오류 값입니다(즉, 각 스레드에는 고유의 값이 있습니다).errno예를 들면, 에 콜을 발신했을 경우 등입니다.open()에러가 발생했습니다(즉, 에러가 반환되었습니다.-1)를 호출할 수 있습니다.perror실제 오류가 무엇인지 확인하기 위해 즉시 작업을 수행합니다.그 사이에 다른 syscall을 호출했을 경우, 의 값..

programing 2022.07.30

SIGUSR1 및 SIGUSR2를 트리거하는 방법

SIGUSR1 및 SIGUSR2를 트리거하는 방법 C의 신호에 익숙해지고 있습니다.어떤 신호인지 알 수가 없네요.SIGUSR1그리고.SIGUSR2어떻게 작동시킬 수 있을까요?누가 설명 좀 해주시겠어요?이러한 신호는 사용자 정의 신호이므로 특정 작업에 의해 트리거되지 않습니다.명시적으로 프로그래밍 방식으로 전송할 수 있습니다. #include kill(pid, SIGUSR1); 어디에pid는, 수신 프로세스의 프로세스 ID 입니다.수신측에서 신호 핸들러를 등록할 수 있습니다. #include void my_handler(int signum) { if (signum == SIGUSR1) { printf("Received SIGUSR1!\n"); } } signal(SIGUSR1, my_handler); 터미..

programing 2022.07.30

getchar()는 입력 문자열과 동일한 출력을 제공합니다.

getchar()는 입력 문자열과 동일한 출력을 제공합니다. K&R에 언급된 프로그램 때문에 혼란스럽습니다.getchar(). 입력 문자열과 동일한 출력을 제공합니다. #include main(){ int c; c = getchar(); while(c != EOF){ putchar(c); c = getchar(); } } 왜 전체 문자열을 인쇄하는 거죠?문자를 읽고 다시 입력을 요구할 것으로 예상합니다. 그리고 입력하는 문자열은 모두 EOF로 끝납니까?사용하고 있는 심플한 설정에서는,getchar는 버퍼링된 입력으로 동작하기 때문에 getchar가 읽을 내용을 얻기 전에 Enter 키를 눌러야 합니다.문자열은 다음에 의해 종료되지 않습니다.EOF; 사실,EOF는 실제로는 문자가 아니라 파일의 끝을 나타내..

programing 2022.07.30

g++ 링커: 정적 라이브러리가 있는 경우 정적 링크를 강제로 적용하시겠습니까?

g++ 링커: 정적 라이브러리가 있는 경우 정적 링크를 강제로 적용하시겠습니까? 나는 많은 도서관을 링크하는 프로그램을 가지고 있다. g++디폴트로는는 대응하는 아카이브가 존재하는 경우에도 공유 라이브러리에 링크하는 것을 선호합니다. 정적 아카이브가 존재하는 경우 동적 라이브러리보다 정적 아카이브를 선호하도록 이 기본 설정을 변경하려면 어떻게 해야 합니까? 주의: 저는-static모든 라이브러리의 정적 아카이브를 검색하려고 합니다.이러한 아카이브는, 내가 원하는 것이 아닙니다.g++ -Wl,-Bstatic -lz -lfoo -Wl,-Bdynamic -lbar -Wl,--as-needed 링크하다zlib그리고.libfoo스태틱으로 되어 있습니다.libbardynamic으로 지정합니다.--as-needed사..

programing 2022.07.28

구조와 유니언의 차이점

구조와 유니언의 차이점 어떤 좋은 예가 있을까요?struct및 aunion기본적으로는 알고 있습니다.struct멤버의 모든 메모리를 사용합니다.union는 가장 큰 멤버메모리 공간을 사용합니다.OS 레벨의 다른 차이가 있습니까? 유니온에서는 한 요소만 사용해야 합니다. 왜냐하면 그것들은 모두 같은 장소에 저장되어 있기 때문입니다.이렇게 하면 여러 가지 유형 중 하나일 수 있는 것을 저장할 때 유용합니다.한편, 구조체는 각각의 요소에 대해 별도의 메모리 위치를 가지며, 한 번에 모든 요소를 사용할 수 있습니다. 구체적인 사용 예를 들자면, 조금 전에 Scheme interpreter를 작업하고 있었는데, 기본적으로 Scheme 데이터 유형을 C 데이터 유형에 오버레이하고 있었습니다.여기에는 값의 유형을 나..

programing 2022.07.28

문자열 상수에서 'char*'로의 변환이 C에서는 유효하지만 C++에서는 무효인 이유

문자열 상수에서 'char*'로의 변환이 C에서는 유효하지만 C++에서는 무효인 이유 C++11 Standard (ISO/IEC 14882:2011)는 다음과 같이 기술하고 있습니다.§ C.1.1: char* p = "abc"; // valid in C, invalid in C++ C++에서는 String Literal로의 포인터가 크래시로 이어지기 때문에 문제가 없습니다.그런데 왜 C에서 유효할까요? C++11에는 다음과 같은 기능도 있습니다. char* p = (char*)"abc"; // OK: cast added 즉, 첫 번째 문장에 깁스를 추가하면 유효하게 됩니다. 왜 캐스팅이 두 번째 문장을 C++로 유효하게 만들며 첫 번째 문장과 어떻게 다른가?아직도 해롭지 않나요?만약 그렇다면, 왜 기준에..

programing 2022.07.28

언제 C에서 malloc을 사용해야 하고 사용하지 말아야 하나요?

언제 C에서 malloc을 사용해야 하고 사용하지 말아야 하나요? malloc()의 동작은 이해합니다.내 질문은 이런 걸 보게 될 거란 거야 #define A_MEGABYTE (1024 * 1024) char *some_memory; size_t size_to_allocate = A_MEGABYTE; some_memory = (char *)malloc(size_to_allocate); sprintf(some_memory, "Hello World"); printf("%s\n", some_memory); free(some_memory); 간결하게 하기 위해 오류 확인을 생략했습니다.메모리의 정적 스토리지에 대한 포인터를 초기화함으로써 위의 작업을 수행할 수 없습니까?아마도: char *some_memory ..

programing 2022.07.28