-----------------------------2019/01/15-------------------------------
复习了下迭代器,其实c++参考里讲的很清楚,主要需要辨析规则如下:
1. begin()指向vector第一个元素, end()指向vector最后一个元素的下一个地址(尾后迭代器off-the-end iterator);
2. insert()是向当前地址前插入,返回第一个插入的元素地址;
3. erase()是从当前地址开始,向后删除,返回删除以后的下一个地址,如果删除到最后一个元素,返回end()
具体如图:
--------------------2019.01.19-------------------------------------------------------------------------
vector添加时间:push_back<尾部insert<头部insert
clock_t start, finish; std::vector<int> v_data, v_data2, v_data3; start = clock(); for(int i = 0;i<200000;i++){ int data = std::rand()%100; v_data.push_back(data); } finish = clock(); printf("\npush_back used %.2f ms\n", (double)(finish-start)*1000/CLOCKS_PER_SEC); start = clock(); for(int i = 0;i<200000;i++){ int data = std::rand()%100; v_data2.insert(v_data2.end(), data); } finish = clock(); printf("\ninsert form tail used %.2f ms\n", (double)(finish-start)*1000/CLOCKS_PER_SEC); start = clock(); for(int i = 0;i<200000;i++){ int data = std::rand()%100; v_data3.insert(v_data3.begin(), data); } finish = clock(); printf("\ninsert form head used %.2f ms\n", (double)(finish-start)*1000/CLOCKS_PER_SEC);