做网站西安哪家好wordpress获取文章第一张图片
news/
2025/9/30 12:01:21/
文章来源:
做网站西安哪家好,wordpress获取文章第一张图片,全国二级建造师查询官网,wordpress 段落缩进3.3.2vector容器
vector的数据安排及操作方式#xff0c;与array非常相似#xff0c;两者唯一差别在于空间的运用的灵活性。Array是静态控件#xff0c;一旦配置了就不能改变#xff0c;要换大一点或者小一点的空间#xff0c;可以#xff0c;一切琐碎得由自己来#x…3.3.2vector容器
vector的数据安排及操作方式与array非常相似两者唯一差别在于空间的运用的灵活性。Array是静态控件一旦配置了就不能改变要换大一点或者小一点的空间可以一切琐碎得由自己来首先配置一块新的空间然后将旧空间的数据办网新空间在释放原来的空间。Vector时动态空间随着元素的加入他的内部机制就会自动阔充空间以容纳新元素。因此vector的运用对于内存的合理利用与运用的灵活性有很大的帮助我们再也不必害怕空间不足而一开始就要求一个大块头的array了。
//vector容器遍历
void test14() {//1.构造一个vector对象 通过vector无参构造构造空vector容器vectorint v;//2.添加若干个元素v.push_back(10);v.push_back(20);v.push_back(30);//3.迭代器使用普通指针 一次指向vector中每一个元素//begin():获取到的是vector容器中的首元素的地址//end():获取到的是vector容器中的最后一位元素的下一位的指针/*vectorint::iterator it v.begin();cout *it endl;it;cout *it endl;it;cout *it endl;*/for (vectorint::iterator it v.begin(); it ! v.end(); it) {//直接输出指针指向元素//cout *it endl;//可以通过指针修改元素if (*it 20) {*it 200;}}//使用迭代器遍历vector容器for (vectorint::iterator it v.begin(); it ! v.end(); it) {cout *it endl;}//使用迭代器遍历容器的时候可以缩写//一次将vector容器的每一个元素给element赋值for (int ele : v) {if (ele 200) {ele 2000;}}for (int ele : v) {cout ele endl;}for (int ele : v) {if (ele 200) {ele 2000;}}for (int ele : v) {cout ele endl;}int a 10;int b a;//想通过b修改a加b 100;
}int main() {test14();system(pause);return 0;//倒序遍历vectorfor (vectorint::iterator it v.end(); it ! v.begin(); ) {it--;cout *it endl;}
}vector构造函数
vectorT v;//采用模板实现类实现默认构造函数
vectorv.begin(), v.end());//将v[begin(), end())区间中的元素拷贝给本身
vector(n, elem);//构造函数将n个elem拷贝给本身
vector(const vector vec);//拷贝构造函数。//例子 使用第二个构造函数我们可以...
int arr[] {2,3,4,1,9};
vectorint v1(arr, arr sizeof(arr)/sizeof(int));//vector的构造函数
void test15() {//1.无参构造vectorint v1 vectorint();//同vectorint v1;//2.vector(n, ele)// 使用n个ele填充容器vectorint v2(10, 5);printVector(v2);//3.vector(const vector v).拷贝构造函数//4.vector(v.begin(),v.end())宝座不包右vectorint v3(v2.begin(), v2.begin() 5);printVector(v3);int array[] { 1,2,3,4,5 };vectorint v4(array, array 3);printVector(v4);}
vector的常用赋值
assign(beg, end);//将[beg,end)区间中的数据拷贝赋值给本身
assign(n, elem);//将n个elem拷贝赋值给本身
vector operatorconst vector vec);//重载等号操作符
swap(vec);//将vec与本身的元素互换//vector的赋值函数
void test16() {//assign(beg, end);//将[beg,end)区间中的数据拷贝赋值给本身//assign(n, elem);//将n个elem拷贝赋值给本身//vector operatorconst vector vec);//重载等号操作符//swap(vec);//将vec与本身的元素互换int arr[] { 1,2,3,4,5,6,7,8,9,0 };//vector对象的构建vectorint v1;v1.assign(arr, arr 6);printVector(v1);//1,2,3,4,5,6,vectorint v2;v2.assign(5, 10);printVector(v2);//10,10,10,10,10,vectorint v3;v3 v2;printVector(v3);//10,10,10,10,10,v1.swap(v2);printVector(v1);//10,10,10,10,10,printVector(v2);//1,2,3,4,5,6,
}
vector的大小操作
size();//返回容器中的元素的个数
empty();//判断容器是否为空
resize(int num);//重新指定容器的长度为num若容器变长则以默认值填充新位置。如果容器变短则末尾超出容器长度的元素被删除。
resize(int num, elem);//重新指定容器的长度为num若容器变长则以elem填充新位置。如果容器变短则末尾超出容器长度的元素被删除。
capacity();//容器的容量
reserve(int len);//容器预留len个元素长度预留位置不初始化元素不可访问//vector的大小操作
void test17() {//size();//返回容器中的元素的个数//empty();//判断容器是否为空//resize(int num);//重新指定容器的长度为num若容器变长则以默认值填充新位置。如果容器变短则末尾超出容器长度的元素被删除。//resize(int num, elem);//重新指定容器的长度为num若容器变长则以elem填充新位置。如果容器变短则末尾超出容器长度的元素被删除。//capacity();//容器的容量//reserve(int len);//容器预留len个元素长度预留位置不初始化元素不可访问vectorint v(10, 5);//返回容器中由多少个元素cout size v.size() endl;//判断容器是否为空cout empty v.empty() endl;//返回容器的容量cout capacity v.capacity() endl;//重新指定容器的长度如果新的长度小于原来的长度保留容器中的前指定数量的元素后面的元素不可见v.resize(5);cout size v.size() endl;//如果新长度大于原来的长度在后面填充默认元素v.resize(15);cout size v.size() endl;printVector(v);//后面填充指定元素v.resize(20, 9);
}vector的数据存取操作
at(int idx);//返回索引idx所指的数据如果idx越界抛出out_of_range异常。
operator[];//返回索引idx所指的数据越界时运行直接报错
front();//返回容器中第一个数据元素
back();//返回容器中最后一个数据元素//vector的数据存取操作
void test18() {//at(int idx);//返回索引idx所指的数据如果idx越界抛出out_of_range异常。//operator[];//返回索引idx所指的数据越界时运行直接报错//front();//返回容器中第一个数据元素//back();//返回容器中最后一个数据元素int array[] { 1,2,3,4,5,6,7,8,9,10 };vectorint v(array, array (sizeof(array) / sizeof(int)));//int ele v.at(3);cout ele endl;ele 40;printVector(v);//int e v[5];cout e endl;e 60;printVector(v);cout v.front() endl;cout v.back() endl;
}
vector插入和删除操作
insert(const_iterator pos, int count, ele);//迭代器指向位置pos插入count个 元素ele
push_back(ele);//尾部插入元素ele
pop_back();//删除最后一个元素
erase(const_iterator start, const_iterator end);//删除迭代器从start到end之间的元素
erase(const_iterator pos);//删除迭代器指向的元素
clear();//删除容器中所有元素//数据插入删除
void test19() {//insert(const_iterator pos, int count, ele);//迭代器指向位置pos插入count个 元素ele//push_back(ele);//尾部插入元素ele//pop_back();//删除最后一个元素//erase(const_iterator start, const_iterator end);//删除迭代器从start到end之间的元素//erase(const_iterator pos);//删除迭代器指向的元素//clear();//删除容器中所有元素//通过数组构建vectorint array[] { 1,2,3,4,5,6,7,8,9,10 };vectorint v(array, array (sizeof(array) / sizeof(int)));//需求希望在第3位插入元素 v.insert(v.begin() 3, 5, 0);//在第3位插入5个0printVector(v);//1,2,3,0,0,0,0,0,4,5,6,7,8,9,10,v.push_back(20);//在末尾插入20printVector(v);//1,2,3,0,0,0,0,0,4,5,6,7,8,9,10,20,
}利用swap函数实现vector容器收缩内存空间 //vector小案例利用swap收缩空间
void test20() {//capacity:在内存上开辟了多少个空间//size:实际容器中存放的元素的数量//capacitysizevectorint v;for (int i 0; i 10000; i) {v.push_back(i);}cout size v.size() endl;//10000cout capacity v.capacity() endl;//12138//使用resize更改容器的元素数量v.resize(10);cout size v.size() endl;//10cout capacity v.capacity() endl;//12138vectorint(v).swap(v);cout size v.size() endl;//10 cout capacity v.capacity() endl;//10#if 0{vectorint v2(v);cout v2 size v2.size() endl;//10cout v2 capacity v2.capacity() endl;//10v2.swap(v);cout size v.size() endl;//10cout capacity v.capacity() endl;//10cout v2 size v2.size() endl;//10cout v2 capacity v2.capacity() endl;//12138}//放代码段里 v2用完直接释放 瘦身效果
#endif
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/922808.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!