长安的花

当学问走过漫漫古道
凿刻入千窟,心也从愚昧中苏醒

0%

Hack cpp introduction2

1. array

数组定义的时候需要同时定义数据长度

int arr[n];

type arrayName [ arraySize ];

double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};

double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};

数组的长度不可以调节;向量vector是可以自动调节大小

2.vector

vector<int>values{1,2,3,4,5}

向量里可以放入任意数据类型:
vector<int> vec;

也可以放进向量:
vector<vector<int>> nvec;

创建一个vector,元素个数为nSize,且值均为t:
vector(int nSize,const t& t)

复制构造函数:
vector(const vector&)

复制[begin,end)区间内另一个数组的元素到vector中:
vector(begin,end)

vector需要在另一个函数里引用,需要在函数变量里使用&

例如: void define_arr(vector<int> &arr,int num);

迭代器(STL迭代器) [这个会在STL里再讲]

vector<int>::iterator it;

用迭代器遍历容器

1
2
3
4
for (i = v.begin(); i != v.end(); ++i) {  //用迭代器遍历容器
cout << *i << " "; //*i 就是迭代器i指向的元素
*i *= 2; //每个元素变为原来的2倍
}

反向迭代器
1
2
for (vector<int>::reverse_iterator j = v.rbegin(); j != v.rend(); ++j)
cout << *j << " ";

基本函数

1
2
#include < vector> 
using namespace std;

增加函数:

1.push_back 在数组的最后添加一个数据(vector里没有push_front)

iterator insert(iterator it,const T& x):向量中迭代器指向元素前增加一个元素x

iterator insert(iterator it,int n,const T& x):向量中迭代器指向元素前增加n个相同的元素x

iterator insert(iterator it,const_iterator first,const_iterator last):向量中迭代器指向元素前插入另一个相同类型向量的[first,last)间的数据

删除函数

2.pop_back 去掉数组的最后一个数据(vector里没有pop_front)

iterator erase(iterator it):删除向量中迭代器指向元素

iterator erase(iterator first,iterator last):删除向量中[first,last)中元素

void clear():清空向量中所有元素

遍历函数

3.at 得到编号位置的数据

4.begin 得到数组头的指针

5.end 得到数组的最后一个单元+1的指针(如果找不到,就会返回end())

6.front 得到数组头的引用

7.back 得到数组的最后一个单元的引用

15.rbegin 将vector反转后的开始指针返回(其实就是原来的end-1)反向迭代器,指向最后一个元素

16.rend 将vector反转构的结束指针返回(其实就是原来的begin-1)反向迭代器,指向第一个元素之前的位置

判断函数

17.empty 判断vector是否为空

大小函数

8.max_size 得到vector最大可以是多大

9.capacity 当前vector分配的大小

10.size 当前使用数据的大小

11.resize 改变当前使用数据的大小,如果它比当前使用的大,者填充默认值

12.reserve 改变当前vecotr所分配空间的大小

其他函数

18.swap 与另一个vector交换数据;void swap(vector&):交换两个同类型向量的数据

void assign(int n,const T& x):设置向量中前n个元素的值为x

void assign(const_iterator first,const_iterator last):向量中[first,last)中元素设置成当前向量元素

sort(obj.begin(),obj.end());//从小到大

sort 需要头文件 #include

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道