标签:
1. 二分查找
1 int bSearch(int arr[], int begin, int end, int target) { 2 int mid, left = begin, right = end; 3 while(left <= right) { 4 mid = (left + right) / 2; 5 if(arr[mid] == target) 6 return mid; 7 if(arr[mid] > target) 8 right = mid - 1; 9 else 10 left = mid + 1; 11 } 12 return left; //Not found, return the closest on the RIGHT 13 //return right; //Not found, return the closest on the LEFT 14 }
2. stl申请二维数组
1 vector<vector<int>> f(m, vector<int>(n, 0));
3. vector
1 vec.insert(vec.begin()+1, elem); //在第二位插入一个元素 vec.erase(vec.begin()+1); //删除第二位的元素 2 vec.back(); //传回最后一个元素 3 vec.pop_back(); //删除最后一个元素 4 vec.push_back(elem); //加入一个元素 5 vec.empty(); //判空 6 std::vector<int> vec1(vec.begin() + 2, vec.end() - 1); //复制一个vector中间一段数据到新的vector
4. map
1 /*遍历*/ 2 for(auto it = myMap.begin(); it != myMap.end(); it++) { 3 cout << it->first << "" << it->second << endl; 4 } 5 /*查找*/ 6 auto it = myMap.find(key); 7 if(it != myMap.end()) { 8 cout << it->first << "" << it->second << endl; 9 } else { 10 cout << "Not found" << endl; 11 } 12 13 myMap.clear(); //清空 14 myMap[key] = value; //插入一个元素,若key已存在则覆盖旧的value myMap.insert(pair<keyType, valueType>(key, value)); //插入一个元素,若key已存在则插入失败 15 myMap.erase(key); //删除键值为key的元素,成功返回1,否则0
5. sort
1 /*从大到小排*/ 2 bool cmp(int a, int b) { 3 return a < b; 4 } 5 6 sort(vec.begin(), vec.end(), cmp);
标签:
原文地址:http://www.cnblogs.com/liboli/p/4568956.html