当前位置: 首页 > news >正文

外汇平台网站开发需求说明中标公示查询官网

外汇平台网站开发需求说明,中标公示查询官网,网站优化前景,做网站需要用到那些软件一、基本概念 vector教据结构和数组非常相似,也称为单端数组,但是数组是静态空间,而vector可以动态扩展。 动态的扩展流程如下: 动态扩展并不是在原空间之后续接新空间,而是找更大的广存空间,然后将原数据拷贝新空间&…

一、基本概念

vector教据结构和数组非常相似,也称为单端数组,但是数组是静态空间,而vector可以动态扩展。
动态的扩展流程如下:
动态扩展并不是在原空间之后续接新空间,而是找更大的广存空间,然后将原数据拷贝新空间,释放原空间。
在这里插入图片描述
vector容器的迭代器是支持随机访问的迭代器,也就是说可以随机访问容器内的任何一个位置的数据。

二、vector的构造函数

vector v; 采用模板实现类实现,默认构造函效。
vector(v.begin(), v.end( )); 将v[begin(), end())区间中的元素拷贝给本身。
vector(n,elem) ; 构造函数将n个elem拷贝给本身。
vector( const vector &vec); 拷贝构造函数。
具体的实现方法如下所示:

	//默认构造方式vector<int> v;for (int i = 0; i < 4; i++){v.push_back(i);}VectorPrint(v);// 通过区间的方式进行构造vector<int>v1(v.begin(), v.end());VectorPrint(v1);//通过n个elem的方式构造vector<int>v2(2, 100);VectorPrint(v2);//通过拷贝构造的方式进行传递vector<int>v3(v2);VectorPrint(v3);

三、vector赋值操作

当我们构建好vector之后,我们可以对vector进行赋值操作,具体的样例如下:

vector& operator=( const vector &vec); 重载等号操作符。
assign(beg, end) ;将[beg, end)区间中的数据拷贝赋值给本身。
assign(n,elen); 将n个elem拷贝赋值给本身。
具体的实现细节如下:

	//赋值操作:重载等号vector<int>v1;v1 = v;VectorPrint(v1);//赋值操作:assign操作1vector<int>v2;v2.assign(v1.begin(), v1.end());VectorPrint(v2);//赋值操作:assign操作2vector<int>v3;v3.assign(2, 100);VectorPrint(v3);

四、vector容量和大小

具体的函数接口如下:
empty( ); 判断容器是否为空
capacity(); 容器的容量
size(); 返回容器中元素的个数
resize( int num); 重新指定容器的长度为num,若容器变长,则以默认值0填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。
resize( int nun, elem); 重新指定容器的长度为num,若容器变长,则以elem值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除
具体的实现样例如下:

	vector<int> v;for (int i = 0; i < 10; i++){v.push_back(i);}if (v.empty()){cout << "容器为空" << endl;}else{cout << "容器不为空" << endl;cout << "容器容量为:" << v.capacity() << endl; cout << "容器的大小为:" << v.size() << endl;} //重新指定容器大小,多出的位置用默认值0填充v.resize(10);//重新指定容器大小,多出的位置用设置值10填充v.resize(15, 10);//重新指定容器大小,超出的部分会被删掉v.resize(2);

五、vector插入和删除

具体的实现接口如下:
push_back(ele);尾部插入元素ele
pop_back();删除最后一个元素
insert (const_iterator pos,ele);迭代器指向位pos插入元素ele
insert( const_iterator pos,int count,ele);迭代器指向位置pos插入count个元素ele
erase(const_iterator pos);删除迭代器指向的元素
erase(const_iterator start,const_iterator end);删除迭代器从start到end之间的元素
clear();删除容器中所有元素
具体样例如下:

	vector<int> v;//尾插法插入数据v.push_back(1);v.push_back(2);v.push_back(3);v.push_back(4);v.push_back(5);vectorPrint(v);//尾部删除法,一次删一个v.pop_back();vectorPrint(v);//插入,第一个参数是迭代器v.insert(v.begin(), 100);vectorPrint(v);//插入,第一个参数是迭代器,插入两个10v.insert(v.begin(), 2, 10);vectorPrint(v);//删除v.erase(v.begin()+3);vectorPrint(v);//删除一个区间v.erase(v.begin() + 3, v.end()-2);vectorPrint(v);//清空v.clear();vectorPrint(v);

输出结果为:

1 2 3 4 5
1 2 3 4
100 1 2 3 4
10 10 100 1 2 3 4
10 10 100 2 3 4
10 10 100 3 4

六、vector的数据存取

具体的实现接口如下:
at( int idx); 返回索引idx所指的数据
operator[]: 返回索引idx所指的数据
front( ); 返回容器中第一个数据元素
back();返回容器中最后一个数据元素
具体实现样例如下:

	for (int i = 0; i < v.size(); i++){//使用at接口进行输出cout << v.at(i) << " ";//使用索引值进行输出cout << v[i] << " ";//获取第一个元素cout << v.front() << endl;//获取最后一个元素cout << v.back() << endl;}

七、vector互换容器

实现两个容器内元素进行互换。
函数接口如下:
swap(vec); 将vec与本身的元素互换
具体的实现样例如下:


void PrintVector(vector<int> &v)
{for (vector<int>::iterator it = v.begin(); it < v.end(); it++){cout << *it << " ";} cout << endl;
}vector<int> v;vector<int> v1;for (int i = 0; i < 3; i++){v.push_back(i);v1.push_back(i+10);}PrintVector(v);PrintVector(v1);v.swap(v1);PrintVector(v);PrintVector(v1);

以上接口的实用技巧:

	vector<int> v;for (int i = 0; i < 3000; i++){v.push_back(i);} cout << v.capacity() << "容量"<<endl;cout << v.size() << "大小"<<endl;//当我们重置容器的大小之后1v.resize(2);cout << v.capacity() << "容量"<<endl;cout << v.size() << "大小"<<endl;

有以上的代码,代码的输入为:

3597容量
3000大小
3597容量
2大小

我们可以看出,当最先的容器申请了3597大小的容量,但是当我们重置容器大小之后,虽然容器的大小变小了,但是容量并没有变化。这就造成了资源的浪费。我们可以通过以下的操作来收缩容器的容量

vector<int>(v).swap(v);

对以上操作进行解释,vector(v)操作是创建了一个新的对象,该对象为匿名对象,这个匿名对象是按照v的大小来初始化,初始化之后调用swap操作之后将指向v的指针指向了该匿名对象,匿名对象指针指向了v,当匿名对象实用完成之后,编译器会将匿名对象指针指向的内存进行回收。通过这样的一个操作达到了收缩容量的作用。

八、vector的预留空间

该操作可以减少vector在动态扩展容量时的扩展次数,具体的接口说明如下:
reserve(int len); 容器预留len个元素长度。预留位置不初始化,元素不可访问。
具体的实现样例如下:

	vector<int> v;//提前开辟够量的空间v.reserve(199999);int num = 0;int *p = NULL;for (int i = 0; i < 199999; i++){v.push_back(i);if (p != &v[0]){p = &v[0];num++;}}cout << num << endl;
}

当随着容器内需要存放的数据不断的增大,容器需要不断的申请内存空间,这样的操作需要很大的工程,所以为了避免这样重复的操作,所以我们需要实现申请一块已经足够的空间。

http://www.yayakq.cn/news/774422/

相关文章:

  • 网站为什么百度不收录温州企业建站系统模板
  • 建网站费用记技术服务费上海知名网站建设
  • 网页设计与网站建设毕业设计糖果屋网站建设策划书
  • 站长工具seo综合查询方法公司做竞拍网站的收入怎么报税
  • 中国观鸟记录的网站架构浙江建设职业技术学院塘栖校区网站
  • 如何做平台网站淘宝客如何做淘宝客网站
  • 成都建网站公司电话国外建设网站
  • pc站转换手机网站中信建设有限责任公司陶扬
  • 贺兰县住房和城乡建设局网站网站开发 flex布局
  • 网站免费发布与推广搜索网站有哪几个
  • 无锡响应式网站制作阿里云网站模板 解析
  • 做网站的会计分录做谷歌推广比较好的公司
  • 网站建设过程发生的费用王天野演员
  • 广州网站建设丿新科送推广河南省建设厅上班时间
  • elementui 做的网站上海做网络口碑优化的公司
  • 高新门户网站专题建设网络舆情分析报告
  • 做ppt的网站 知乎在线免费解答网站怎么建
  • 怎么做自己的网站教程怎么做农家乐联盟网站
  • 做网站主要是做什么wordpress创建页面错误
  • 网站建设工作是干什么的江门外贸网站建设
  • 彩票网站代理怎么做网站建设要做什么
  • 兰州新区规划建设管理局网站网站建设找盛誉网络
  • 网站与系统对接图文方案大鹏网站建设建站好不好
  • 中国网站建设集团如何做网站水晶头
  • 高端人才招聘网站排名域名查询万网
  • 学会网站制作要多久莆田手表网站
  • 网站上传不了wordpress 支付宝付款
  • 网站积分的作用素材羊设计师服务平台
  • 教育网站建设情况报告温州制作网站软件
  • 网站与网址的区别查询网站名有没有收录