-----------------------------2019/01/15-------------------------------

复习了下迭代器,其实c++参考里讲的很清楚,主要需要辨析规则如下:

1. begin()指向vector第一个元素, end()指向vector最后一个元素的下一个地址(尾后迭代器off-the-end iterator);

2. insert()是向当前地址前插入,返回第一个插入的元素地址;

3. erase()是从当前地址开始,向后删除,返回删除以后的下一个地址,如果删除到最后一个元素,返回end()

具体如图:

c++学习笔记(六)- vector使用和内存分配

 --------------------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);
View Code

相关文章: