https://www.bilibili.com/video/av8978464?from=search&seid=3009905431971321322 视频学习推荐
Vector相当于一个一维数组,但是它是一个动态的,即添加数据就把数组的长度增加一个,即不会出现一维数组的数组越界的情况。
所以一般使用Vector时,是用在一个数组不知道其长度的时候。
但其有一个缺点或者优点,即是它可以存在重复的元素,再有需要不重复的元素的要求下,需要特别考虑,如何去掉重复?
例题如下:
其中这道题需要注意的有以下几点:
1.数据长度 长达10的15次方。
2.我们要循环求出这个数所有的约数,但是我们不知道它一共有多长,所以我们用vector。定义方式:vector<数据类型>名称。push_back()插入数据,begin()是vector开始的地方,end()是vector结束的地方,size()是vector的长度。
3.两个if:第一个if的意思是n%i求出其约数,我们不担心数据重复的情况,是因为数据重复的情况下,这个约数就不是我们想找的约数,比如说我们想找的是第三个约数,但是第一个和第二个是重复的,所以我们找的第三个就应该在第四个上。第二个if的意思当n是一个完全平方数的时候,i*i恰好等于n,就相当于i和n/i是重复的,我们就只需要插入一个n/i即可。
4.插入顺序不会是有序的,sort对vector排序。
5.typedef long long ll; 自己定义的一个属于long long型的ll型数据类型。