赞
踩
全场最拉
#include <iostream> #include <vector> #include <unordered_set> #include <cstdlib> #include <ctime> using namespace std; // 普通范围for void rangeFor1(const vector<int> &vec) { unordered_set<int> uset; for (auto i : vec) { uset.insert(i); } } // 使用emplace的普通范围for void rangeFor2(const vector<int> &vec) { unordered_set<int> uset; for (auto i : vec) { uset.emplace(i); } } // 使用const&的范围for void rangeFor3(const vector<int> &vec) { unordered_set<int> uset; for (const auto &i : vec) { uset.emplace(i); } } void init(const vector<int> &vec) { unordered_set<int> uset(vec.begin(), vec.end()); } int main() { clock_t start, end; vector<int> vec; for (int i = 0; i < 10000000; i++) { vec.push_back(i); } double endtime; start = clock(); rangeFor1(vec); end = clock(); endtime = (double)(end - start) / CLOCKS_PER_SEC; cout << "普通范围for:" << endtime << endl; start = clock(); rangeFor2(vec); end = clock(); endtime = (double)(end - start) / CLOCKS_PER_SEC; cout << "emplace的范围for:" << endtime << endl; start = clock(); rangeFor3(vec); end = clock(); endtime = (double)(end - start) / CLOCKS_PER_SEC; cout << "使用const&和emplace的范围for:" << endtime << endl; start = clock(); init(vec); end = clock(); endtime = (double)(end - start) / CLOCKS_PER_SEC; cout << "init time:" << endtime << endl; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。