您现在的位置是:主页 > news > xx网站开发建设方案/厦门关键词排名优化
xx网站开发建设方案/厦门关键词排名优化
admin2025/4/28 23:25:00【news】
简介xx网站开发建设方案,厦门关键词排名优化,机关网站内容建设工作总结,国外效果做的好的网站标准库vector 1、包含相应头文件和相应using声明: #include <vector> using std::vector; 注:vector不是一种数据类型,而只是一个类模板,可以用来定义任意多种数据类型。所以,vector<int>、vector<str…
标准库vector
1、包含相应头文件和相应using声明:
#include <vector>
using std::vector;
注:vector不是一种数据类型,而只是一个类模板,可以用来定义任意多种数据类型。所以,vector<int>、vector<string>都是数据类型。所以,vector<vector<int>> ivec; 是正确的定义,因为vector<int>是一种数据类型。
vector<T> v1; | vector保存类型为T的对象。默认构造函数v1为空。 |
vector<T> v2(v1); | v2是v1的一个副本。 |
vector<T> v3(n, i); | v3包含n个值为i的元素。 |
vector<T> v4(n); | v4含有值初始化的元素的n个副本。 |
3、vector对象的操作
v.empty() 如果 v 为空,则返回 true, 否则返回 false 。
v . size () 返回 v 中元素的个数。
v . push _ back ( t ) 在 v 的末尾增加一个值为 t 的元素。
v [ n ] 返回 v 中位置为 n 的元素。
v1 = v2 把 v1 的元素替换为 v2 中元素的副本。
v1 == v2 如果 v1 与 v2 相等,则返回 true 。
!=, <, <=, >, >= 保持这些操作符惯有的含义。
pop_back()、erase()删除元素:向量容器的成员函数pop_back()可以删除最后一个元素,而函数erase()可以删除由一个iterator指出的元素,也可以删除一个指定范围的元素。
v.back() 返回容器中的最后一个元素
vector<int> x;
x.erase(x.begin() + i);
还可以采用通用算法remove()来删除vector容器中的元素,不同的是,采用remove一般情况下不会改变容器的大小,而pop_back()与erase()等成员函数会改变容器的大小。
注:下标操作不添加元素
迭代器iterator介绍
1、容器的iterator类型
每种容器都定义了自己的迭代器类型,如vector:
vector<int>::iterator iter;
2、begin和end操作
每种容器都定义了一堆命名为begin和end的函数,用于返回迭代器。
由begin返回的迭代器指向第一个元素。
由end操作返回的迭代器指向vector的“末端元素的下一个”。
3、vector的自增和解引用运算
++iter来是迭代器“向前移动一个位置“。
解引用操作符(*操作符)来访问迭代器所指向的元素:
*iter = 0;
例:
for(vector<int>::iterator iter = vect.begin(); iter != vect.end(); iter++)
{*iter = 0;//将所有元素设为0
}
4、const_iterator
//不能修改其值的迭代器
vector<int>::const_iterator
//迭代器的值不能被改变(初始化时必须指向固定元素)
const vector<int>::iterator
5、迭代器的算术操作
iter + n
iter - n
产生新的迭代器,其位置在iter所指元素之前(加)或之后(减)n个元素的位置。
iter1 - iter2
计算两个迭代器对象的距离。该距离是名为difference_type的signed类型的值。
注:没有两个迭代器的相加操作,所以以下操作时错的:
//如采用下面的方法来计算mid
vector<int>::iterator mid=(vi.begin()+vi.end())/2
//将两个迭代器相加的操作是未定义的,因此用这种方法计算mid会出现编译错误
正确做法:
//用迭代器算术操作,初始化mid,使其指向vi中最靠近正中间的元素
vector<int>::iterator mid=vi.begin()+vi.size()/2;
vi.begin()与vi.end()返回的是迭代器。vi.size()返回的是元素个数。
附《C++ Primer 中文版(第4版)》习题3.13
/************************************************************************/
/* 读一组整数到vector对象,计算并输出每对相邻元素的和,如果读入元素个数为
奇数,则提示用户最后一个元素没有求和,并输出其值。 */
/************************************************************************/
#include <iostream>
#include <vector>
#include<string>using namespace std;
using std::vector;
using std::string;int main()
{vector<int> vI;int nInput;/*读入一组数*/char c;cout<<"输入一组数,数之间用空格隔开:"<<endl;while ((c=cin.get())!= '\n'){cin.unget();cin>>nInput;vI.push_back(nInput);}/*求相邻数的和*/for (vector<int>::size_type ix = 0;ix < vI.size()-1;ix += 2){ cout<<vI[ix]+vI[ix+1]<<" ";}cout<<"\n";if (0 != vI.size()%2){cout<<"最后一位没有求和"<<endl;}return 0;
}
习题3.17 改为迭代器访问:
将下列代码
for (vector<int>::size_type ix = 0;ix < vI.size()-1;ix += 2){ cout<<vI[ix]+vI[ix+1]<<" ";}
改为:
for (vector<int>::iterator iter1=vI.begin();iter1 < vI.end()-1; iter1+=2){cout<<*iter1+*(iter1+1)<<" ";}