您现在的位置是:主页 > news > xx网站开发建设方案/厦门关键词排名优化

xx网站开发建设方案/厦门关键词排名优化

admin2025/4/28 23:25:00news

简介xx网站开发建设方案,厦门关键词排名优化,机关网站内容建设工作总结,国外效果做的好的网站标准库vector 1、包含相应头文件和相应using声明&#xff1a; #include <vector> using std::vector; 注&#xff1a;vector不是一种数据类型&#xff0c;而只是一个类模板&#xff0c;可以用来定义任意多种数据类型。所以&#xff0c;vector<int>、vector<str…

xx网站开发建设方案,厦门关键词排名优化,机关网站内容建设工作总结,国外效果做的好的网站标准库vector 1、包含相应头文件和相应using声明&#xff1a; #include <vector> using std::vector; 注&#xff1a;vector不是一种数据类型&#xff0c;而只是一个类模板&#xff0c;可以用来定义任意多种数据类型。所以&#xff0c;vector<int>、vector<str…

标准库vector

1、包含相应头文件和相应using声明:

#include <vector>
using std::vector;

注:vector不是一种数据类型,而只是一个类模板,可以用来定义任意多种数据类型。所以,vector<int>、vector<string>都是数据类型。所以,vector<vector<int>> ivec; 是正确的定义,因为vector<int>是一种数据类型。


2、vector对象的定义和初始化

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)<<" ";}