Rechercher une page de manuel
bsearch
Langue: ja
Version: 2003-11-01 (openSuse - 09/10/07)
Section: 3 (Bibliothèques de fonctions)
̾Á°
bsearch - ¥½¡¼¥È¤µ¤ì¤¿ÇÛÎó¤òÆóʬÌÚ¸¡º÷ (binary search) ¤¹¤ë½ñ¼°
#include <stdlib.h> void *bsearch(const void *key, const void *base, size_t nmemb,
- size_t size, int (*compar)(const void *, const void *));
ÀâÌÀ
bsearch() ´Ø¿ô¤Ï nmemb ¸Ä¤Î¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¤Ê¤ëÇÛÎó¤ò¸¡º÷ ¤¹¤ë¡£ÇÛÎó¤ÎºÇ½é¤Î¥á¥ó¥Ð¡¼¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï base ¤Ë¤è¤Ã¤ÆÍ¿¤¨¤ë¡£ ¥Ý¥¤¥ó¥¿ key ¤Ç»²¾È¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤È°ìÃפ¹¤ë¥á¥ó¥Ð¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ ÇÛÎóÃæ¤Î³Æ¡¹¤Î¥á¥ó¥Ð¡¼¤Î¥µ¥¤¥º¤Ï size ¤Ë¤è¤Ã¤Æ»ØÄꤹ¤ë¡£ÇÛÎó¤ÎÆâÍƤÏÈæ³Ó´Ø¿ô compar ¤Ë´ð¤Å¤¡¢¾º½ç¤Ë¥½¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì ¤Ð¤Ê¤é¤Ê¤¤¡£ compar ¥ë¡¼¥Á¥ó¤ÏÆó¤Ä¤Î°ú¿ô¤ò¼è¤ë´Ø¿ô¤Ç¡¢°ì¤Ä ÌÜ¤Ë key ¤Ø¤Î¥Ý¥¤¥ó¥¿¡¢¼¡¤ËÇÛÎó¤Î¥á¥ó¥Ð¡¼¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò¼è¤ë¡£ ¤³¤Î½ç¤Ë»ØÄꤷ¤¿¤È¤¡¢ key ¤¬ÇÛÎó¥á¥ó¥Ð¡¼¤è¤ê¾®¤µ¤¤¤È¤¤Ë¤Ï Éé¤ÎÀ°¿ô¤ò¡¢Â礤¤¤È¤¤Ë¤ÏÀµ¤ÎÀ°¿ô¤ò¡¢°ìÃפ·¤¿¤È¤¤Ë¤Ï 0 ¤ò¡¢¤½¤ì¤¾¤ì compar ¤ÏÊÖ¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
ÊÖ¤êÃÍ
bsearch() ´Ø¿ô¤Ï¡¢ÇÛÎó¤Î¥á¥ó¥Ð¡¼¤Î¤¦¤Á¡¢°ìÃפ·¤¿¤â¤Î¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò ÊÖ¤¹¡£¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤È¤¤Ï NULL ¤òÊÖ¤¹¡£ key ¤È°ìÃפ·¤¿¥á¥ó¥Ð¡¼¤¬ Ê£¿ô¤¢¤ë¤È¤¡¢¤½¤Î¤¦¤Á¤Î¤É¤Î¥á¥ó¥Ð¡¼¤¬ÊÖ¤µ¤ì¤ë¤«¤Ï¤ï¤«¤é¤Ê¤¤¡£½àµò
SVr4, 4.3BSD, POSIX.1-2001, C89, C99Îã
°Ê²¼¤ÎÎã¤Ï¡¢ qsort(3) ¤ò»È¤Ã¤Æ¹½Â¤ÂΤÎÇÛÎó¤ÎʤӴ¹¤¨¤ò¹Ô¤Ã¤¿¸å¡¢ ½ê˾¤ÎÍ×ÁǤò bsearch() ¤ò»È¤Ã¤Æ¼èÆÀ¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£#include <stdio.h> #include <stdlib.h> #include <string.h> struct mi { int nr; char *name; } months[] = { { 1, "jan" }, { 2, "feb" }, { 3, "mar" }, { 4, "apr" }, { 5, "may" }, { 6, "jun" }, { 7, "jul" }, { 8, "aug" }, { 9, "sep" }, {10, "oct" }, {11, "nov" }, {12, "dec" } }; #define nr_of_months (sizeof(months)/sizeof(months[0])) static int compmi(const void *m1, const void *m2) { struct mi *mi1 = (struct mi *) m1; struct mi *mi2 = (struct mi *) m2; return strcmp(mi1->name, mi2->name); } int main(int argc, char **argv) { int i; qsort(months, nr_of_months, sizeof(struct mi), compmi); for (i = 1; i < argc; i++) { struct mi key, *res; key.name = argv[i]; res = bsearch(&key, months, nr_of_months, sizeof(struct mi), compmi); if (res == NULL) printf("'%s': unknown month\n", argv[i]); else printf("%s: month #%d\n", res->name, res->nr); } exit(EXIT_SUCCESS); }
´ØÏ¢¹àÌÜ
hsearch(3), lsearch(3), qsort(3), tsearch(3)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre