diff options
author | Jim Laskey <jlaskey@mac.com> | 2005-08-25 16:21:56 +0000 |
---|---|---|
committer | Jim Laskey <jlaskey@mac.com> | 2005-08-25 16:21:56 +0000 |
commit | 6600fa2d1706e697ef058992bed709708d4d403c (patch) | |
tree | 35d04f3f72407597b2fa08bf0df88594bf313545 /include/llvm/Support | |
parent | 2d48b13eef649cb1e359d6eb43b4c5d111124153 (diff) | |
download | external_llvm-6600fa2d1706e697ef058992bed709708d4d403c.zip external_llvm-6600fa2d1706e697ef058992bed709708d4d403c.tar.gz external_llvm-6600fa2d1706e697ef058992bed709708d4d403c.tar.bz2 |
Recommended to use std::algorithms instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23046 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Support')
-rw-r--r-- | include/llvm/Support/Search.h | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/include/llvm/Support/Search.h b/include/llvm/Support/Search.h deleted file mode 100644 index 3af723e..0000000 --- a/include/llvm/Support/Search.h +++ /dev/null @@ -1,78 +0,0 @@ -//===- llvm/Support/Search.h - Support for searching algorithms -*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file was developed by the LLVM research group and is distributed under -// the University of Illinois Open Source License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// These templates impliment various generic search algorithms. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_SUPPORT_SEARCH_H -#define LLVM_SUPPORT_SEARCH_H - -namespace llvm { - // SearchString - generalized string compare method container. Used for - // search templates. - struct SearchString { - static inline int Compare(const char *A, const char *B) { - return strcmp(A, B); - } - }; - - // LinearSearch - search an array of items for a match using linear search - // algorithm. Return find index or -1 if not found. - // ItemType - type of elements in array. - // CompareClass - container for compare method in form of - // static int Compare(ItemType A, ItemType B) - // returns < 0 for A < B - // > 0 for A > B - // == 0 for A == B - // Match - item to match in array. - // Array - an array of items to be searched. - // Size - size of array in bytes. - // - // Eg. LinearSearch<const char *, SearchString>("key", List, sizeof(List)); - // - template<typename ItemType, class CompareClass> - inline int LinearSearch(ItemType Match, ItemType Array[], size_t Size) { - unsigned N = Size / sizeof(ItemType); - for (unsigned Index = 0; Index < N; Index++) { - if (!CompareClass::Compare(Match, Array[Index])) return Index; - } - return -1; - } - - // BinarySearch - search an array of items for a match using binary search - // algorithm. Return find index or -1 if not found. - // ItemType - type of elements in array. - // CompareClass - container for compare method in form of - // static int Compare(ItemType A, ItemType B) - // returns < 0 for A < B - // > 0 for A > B - // == 0 for A == B - // Match - item to match in array. - // Array - a sorted array of items to be searched. - // Size - size of array in bytes. - // - // Eg. BinarySearch<const char *, SearchString>("key", List, sizeof(List)); - // - template<typename ItemType, class CompareClass> - inline int BinarySearch(ItemType Match, ItemType Array[], size_t Size) { - int Lo = 0, Hi = Size / sizeof(ItemType); - while (Lo <= Hi) { - unsigned Mid = (Lo + Hi) >> 1; - int Result = CompareClass::Compare(Match, Array[Mid]); - if (Result < 0) Hi = Mid - 1; - else if (Result > 0) Lo = Mid + 1; - else return Mid; - } - return -1; - } -} - -#endif - |