vectorint::iterator it;for(it=vec.begin();it!=vec.end();it++)cout*itendl;(6)插入元素: vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;(7)删除元素: vec.erase(vec.begin()+2);删除第3个元素 vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0...
void vector_push_back(MY_VECTOR *v, Element val) { if (v == NULL) { // Vector不能是NULL return; } if (v->size == v->capacity) { // 容量不足,扩容 vector_rsize(v); } v->data[v->size] = val; v->size++; } // 向数组的前面插入一个元素 void vector_push_front(MY_VECTO...
for(vector<string>::reverse_iterator iter = v6.rbegin(); iter != v6.rend(); iter++) { cout<< *iter <<endl; } 5.插入元素 下面的例子,演示了如何使用 insert() 函数向 vector 容器中插入元素。 #include <iostream>#include<vector>#include<array>usingnamespacestd;intmain() { std::vector...
不同的地方就是:数组是静态分配空间,一旦分配了空间的大小,就不可再改变了;而vector是动态分配空间,随着元素的不断插入,它会按照自身的一套机制不断扩充自身的容量。 1.2vector的内存扩充机制 按照容器现在容量的一倍进行增长。vector容器分配的是一块连续的内存空间,每次容器的增长,并不是在原有连续的内存空间后再...
// 初始化一个 Vector 动态数组.这实际上是模拟了 C++的默认构造函数Vector*vector_create();// 销毁一个 Vector 动态数组,释放内存。这实际上模拟了 C++的析构函数voidvector_destroy(Vector* v);// 向动态数组末尾添加一个元素voidvector_push_back(Vector* v, ElementType element);// 在动态数组最前面添加...
int arr[5]={0}; int* p=&arr[0]; *p++=0;最后一句代码意思是,先把p地址指向的内容改成0,也就是arr[0]=0,然后在p++,地址就指向了arr[1]了,而*–p=0;则是先 – -p,也就是指针向前挪一步,然后赋值0 规定,一个指针指向某个数组时,它可以与数组最后一个元素的后一个指针进行比较,但是不能...
将比基准小的数交换到前面,比基准大的数交换到后面 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序 代码: voidQuickSort(vector&v,intlow,inthigh){ if(low>=high)//结束标志 return; intfirst=low;//低位下标 intlast=high;//高位下标 ...
默认情况下,底层容器是 std::vector,比较函数是 std::less,适用于最大堆。自定义比较函数如 std::greater 可以用于创建最小堆。在 std::priority_queue 中,最大(或根据比较函数确定的“最高优先级”)的元素始终位于队列的前面。提供了 push、pop、访问顶部元素等操作,底层基于堆数据结构实现,...
(1)序列式容器(Sequence containers),每个元素都有固定位置--取决于插入时机和地点,和元素值无关,vector、deque、list; Vector:将元素置于一个动态数组中加以管理,可以随机存取元素(用索引直接存取),数组尾部添加或移除元素非常快速。但是在中部或头部安插元素比较费时; Deque:是“double-ended queue”的缩写,可以随...