欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++:Vector指针访问内部元素的方法

程序员文章站 2022-03-23 14:19:49
...

目录

1.Vector指针访问内部元素

方法一:直接访问

方法二:迭代器访问

2.Vector迭代器(iterator)

3.示例完整代码及运行结果


1.Vector指针访问内部元素

方法一:直接访问

void showVect1(const std::vector<int>* pVec)
{
    int size = pVec->size();
    for (int i = 0; i < size; i++)
    {
        std::cout << (*pVec)[i] << " ";
    }
    std::cout << std::endl;
}

方法二:迭代器访问

void showVect2(const std::vector<int>* pVec)
{
    //使用迭代器
    int size = pVec->size();
    for (std::vector<int>::const_iterator it = pVec->begin(); it != pVec->end(); it++)
    {
	std::cout << *it << " ";
    }
    std::cout << std::endl;
}

2.Vector迭代器(iterator)

(1) const_iterator和iterator的区别

const_iterator:只能读取容器中的元素,而不能修改。

iterator:可以读取并修改容器中的元素;

(2) iterator的算术操作:

  • iterator常用算术操作 ++,--;
  • 加减n后赋值新的iteraor对象,例如:iter = iter+n;iter = iter-n。
  • 两个iterator 对象相减,例如:
{
    const vector<int>::iterator newiter1 = vectorTmp.begin();
    const vector<int>::iterator newiter2 = vectorTmp.end();
    cout << newiter2 - newiter1 ; //输出两个iter之间的元素长度
}

3.示例完整代码及运行结果

#include <vector>
#include <iostream>

using namespace std;

void initVect(vector<int>* const pVec)
{
    for (int i = 0; i < 10;)
    {
	pVec->push_back(++i);
    }
}

void showVect1(const vector<int>* pVec)
{
    int size = pVec->size();
    for (int i = 0; i < size; i++)
    {
	cout << (*pVec)[i] << " ";
    }
    cout << endl;
}

void showVect2(const vector<int>* pVec)
{
    //使用迭代器
    int size = pVec->size();
    for (vector<int>::const_iterator it = pVec->begin(); it != pVec->end(); it++)
    {
	cout << *it << " ";
    }
    cout << endl;
}

int main(void)
{
    vector<int> vectorTmp;
    initVect(&vectorTmp);	
    showVect1(&vectorTmp);
    showVect2(&vectorTmp);

    const vector<int>::iterator newiter1 = vectorTmp.begin();
    const vector<int>::iterator newiter2 = vectorTmp.end();
    cout << "Data length between newiter2 and newiter1:" << 
	newiter2 - newiter1 << endl; //输出两个iter之间的元素长度

    system("pause");
    return 0;
}

运行结果:

C++:Vector指针访问内部元素的方法

相关标签: C++基础