在一个整型向量v中查找值a,返回相应的下标
// lsearch.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> #include <vector> #include <cstdlib> #include <ctime> using namespace std; /** 在一个向量中找到一个元素 @param v 要查找的元素的向量 @param a 要查找的值 @return 返回第一个匹配的值,如果没找到返回-1 */ int linear_search(vector<int> v, int a) { for (int i = 0; i < v.size(); i++) { if (v[i] == a) return i; } return -1; } /** 打印向量中的所有元素 @param a 要打印的向量 */ void print(vector<int> a) { for(int i = 0; i < a.size(); i++) cout << a[i] << " "; cout << " "; } /** 设置要取的随机数的种子 */ void rand_seed() { int seed = static_cast<int>(time(0)); srand(seed); } /** 在一个range内计算随机数 @param a range的底部 @param b range的顶部 @return 返回一个随机初始值x, a <= x 并且x <= b */ int rand_int(int a, int b) { return a + rand() % (b - a + 1); } int _tmain(int argc, _TCHAR* argv[]) { rand_seed(); vector<int> v(20); for (int i = 0; i < v.size(); i++) v[i] = rand_int(1, 100); print(v); cout << "Enter number to search for: "; int n; cin >> n; int j = linear_search(v, n); cout << " Found in position " << j <<" "; system("pause"); return 0; }