当前位置: 首页> 财经> 金融 > 杭州高端网建_b2c商城用户实验报告_外包网络推广公司怎么选_网络软文是什么意思

杭州高端网建_b2c商城用户实验报告_外包网络推广公司怎么选_网络软文是什么意思

时间:2025/7/12 8:55:18来源:https://blog.csdn.net/qq_69914539/article/details/146049423 浏览次数:0次
杭州高端网建_b2c商城用户实验报告_外包网络推广公司怎么选_网络软文是什么意思

1.STL-vector

向量是可以改变其大小的线性序列容器。向量使用连续的空间存储元素,表明向量可以像数组通过下标来访问元素,但是向量的大小可以动态变化。向量的容量可能大于其元素需要的实际容量,向量通过消耗更多的内存来换取存储管理效率。

具体用法

(1)vector的定义

使用向量vector标准模版,在代码中添加头文件,格式为#include<vector>。定义一个向量vector:vector<typename> name。

(2)vector用作判断的状态

返回当前向量是否为空:empty()

返回当前向量元素个数:size()

(3)vector尾部元素的添加或删除

向量尾部添加新元素:push_back();向量尾部删除元素:pop_back()

(4)vector元素的访问

可以通过像数组一般通过元素下标进行访问,下标从0到size()-1。

可以通过迭代器进行访问,类似于指针。

(5)vector元素操作

在任意位置插入元素:insert();在任意位置删除元素:erase(),将向量清空:clear()。

(6)vector迭代器操作

返回向量中的首元素的迭代器:begin(),返回向量中尾元素后一个位置的迭代器end()。

示例代码

#include <iostream>
#include <vector>using namespace std;
vector<int> myVector;int main(){for(int i=0;i<5;++i){myVector.push_back(i);  //从尾部逐一添加元素}myVector.insert(myVector.begin(),3,15); //头部插入3个15myVector.pop_back();for(int i=0;i<myVector.size();++i){cout<<myVector[i]<<" ";}cout<<endl;cout<<"the 5th element of myVector:"<<myVector[4]<<endl;cout<<"the size of myVector:"<<myVector.size()<<endl;myVector.erase(myVector.begin()+5,myVector.end());  //删除第5后续的元素vector<int>::iterator it;   //定义迭代器for(it=myVector.begin();it!=myVector.end();it++){cout<<*it<<" ";         //遍历向量}cout<<endl;myVector.clear();return 0;
}

2.list的使用

和vector基本相似,两者所支持的操作基本一致,底层原理是双向链表。

做题时,优先使用vector,如果发现效率低,可以换成list。

#include <iostream>
#include <list>using namespace std;int main() {list<int> ls1={1,3,5,7,9};list<int>::iterator it=ls1.begin();//it=it+2; 链表不支持随机访问,故不支持加法运算符++it;//只支持自增运算符++it;cout<<"*it="<<*it<<endl;ls1.erase(it);  //list中使用erase和insert效率更高一些for(it=ls1.begin();it!=ls1.end();++it){cout<<"after erase,*it="<<*it<<endl;}return 0;
}

3.向量的应用例题(清华大学上机题)

链接:http://t.cn/AiKEyQWW

【分析】由于完数和盈数的数量未知,数组大小未知,可以采用vector变长数组。

向量vector不仅能够解决输入/输出数据量不确定问题,还能实现图论中邻接表。

本文会持续完善和更新~

关键字:杭州高端网建_b2c商城用户实验报告_外包网络推广公司怎么选_网络软文是什么意思

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: