C++ vector容器的4种遍历方式

首先定义三个结构体,注意初始化:

struct CVector2{
struct CVector2()
{
x = 0.0;
y = 0.0;
};
float x;
float y;


};
struct CVector3{
struct CVector3()
{
x = 0.0;
y = 0.0;
z = 0.0;
};
float x;
float y;
float z;
};

struct obj{
vector<CVector2> TexCoord;
vector<CVector3> VertexCoord;
};

然后介绍遍历方式:


obj obbject;
CVector2 elem2;
CVector3 elem3;
elem2.x = 0.1;
elem2.y = 0.2;


elem3.x = 0.0;
elem3.y = 0.5;
elem3.z = 0.8;
obbject.TexCoord.push_back(elem2);
elem2.x = 0.2;
elem2.y = 0.7;


elem3.x = 0.7;
elem3.y = 0.67;
elem3.z = 0.89;
obbject.TexCoord.push_back(elem2);

//遍历方式1,采用迭代器
for (vector<CVector2>::iterator it = obbject.TexCoord.begin(); it != obbject.TexCoord.end(); it++)
{
cout << (*it).x << endl;
cout << (*it).y<<endl;
}

//遍历方式2,采用迭代器.并采用C++11新标准中的auto关键字
for (auto it = obbject.TexCoord.begin(); it != obbject.TexCoord.end();it++)
{
cout << (*it).x << endl;
cout << (*it).y << endl;
}

////遍历方式3,采用下角标进行数据元素访问
for (size_t i = 0; i < obbject.TexCoord.size(); i++)
{
cout << obbject.TexCoord[i].x << endl;
cout << obbject.TexCoord[i].y << endl;
}

//遍历方式4,采用C++11新标准中的auto关键字
for (auto i:obbject.TexCoord)
{
cout << i.x << endl;
cout << i.y << endl;
}
system("pause");


注意:vector容器使用频率很高,应该熟练掌握!


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值