文章目录提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
- 前言
- 一、vector 容器是与其优点
- 二、vector类的基本操作
- 1.初始化与元素访问
- 2.增删改查
- 总结
前言
这是笔者第一篇学习记录博客,自学习CPP甚至一系列语言来,从未记录过自己的学习状况。
本篇文章将作为开端记录自己的学习进度以及一些心得体会,也便于自己今后查漏补缺与回忆遗忘的算法。
定义:vector类 是个能存放 任意类型 的动态数组的容器 。
并且能通过方法对容器的大小进行压缩和扩容(即为动态扩展:将原数据拷贝到一块更大的空间并释放源空间,并不是直接在原空间后面扩展)。
优点:
(1)自动处理容量
(2)可以在容器末尾增加或删除元素,其时间复杂度仅为O(1);
(3)可以在任意位置插入数据,需要移动元素时间复杂度为O(n);
(4)可以使用迭代器对vector容器采用多种方式遍历。
5、vector类中有多种方法可以使得数组处理变得更加方便。
#include//vector类头文件 #include //vector类方法头文件 vector array; //创建对象 vector a(5); //指定容器大小为5个元素 ,初始值为0 vector b(5,3);//指定容器大小为5个元素,初始值为3 vector c{1,2,3}; //指定每个元素的值 花括号!! vector d(a);//复制构造函数 vector e(begin(c),begin(c) + 1); //部分复制构造函数
vector可以和普通数组一样通过array[i]( i >=0)
vector 容器也提供了 data() 成员函数,该函数的功能是返回指向容器中首个元素的指针。通过该指针也可以访问或者修改容器中的元素:
pointer = c.date(); std::cout<< *pointer<2.增删改查 (1)增 :
array.push_back(1) //在容器末端增加一个元素 array.emplace_back(2) //在容器末端增加一个元素 //emplace_back()能 可以直接传构造对象的参数,少了一次构造效率更高(2)插入:
I、在迭代器指定的位置插入单个元素
array.insert(end(array),3); //{3}II、向第一个参数指定的位置中插入从第二个参数到第三个参数中的元素
(三个参数都是迭代器)array.insert(end(a),begin(b),end(b));//{3,3,3,3,3}III、往第一个参数(迭代器)指定的位置插入以第二个参数为个数的第三个参数
array.insert(end(a), 2, 7); //{7,7}IV、第一个参数是插入位置,第二个参数是插入的参数(初始化列表形式)
a.insert(end(a), {8,9});//{8,9}(3)删除:
I、erase()方法vectorarray{1, 2, 3, 4, 5, 6}; //删除由迭代器指定位置的一个元素 array.erase(array.begin() +1); // {1, 3, 4, 5, 6} //删除两个迭代器之间的元素 array.erase(array.begin(),array.end() -2); //{5, 6} II、pop_bcak()方法
//删除最后一个元素 array.pop_back(); {5}(4)修改
改日继续
总结提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。



