C++ vector容器的4种遍历方式
2015-12-22 21:54
543 查看
首先定义三个结构体,注意初始化:
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容器使用频率很高,应该熟练掌握!
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容器使用频率很高,应该熟练掌握!
相关文章推荐
- 森浦资讯(C++ 面试两道程序题)
- 【c/c++】指针函数和函数指针
- C语言各种数据类型取值范围
- C语言 第一章
- 实战c++中的vector系列--使用sort算法对vector进行排序(对vector<string>排序、使用稳定的排序std::stable_sort())
- 实战c++中的vector系列--使用sort算法对vector进行排序(对vector<string>排序、使用稳定的排序std::stable_sort())
- 设计模式系列(十四)组合模式(Composite Pattern)
- c++获取cpu信息代码
- C++11 并发指南二(std::thread 详解)
- C++ typedef用法小结 (※不能不看※)
- C++11 并发指南一(C++11 多线程初探)
- C语言的基础
- WINDOWS7下VC++ 6.0 无法打开文件(打开文件时软件崩溃)的解决办法。
- vc++笔记十一
- 排序(6)---------归并排序(C语言实现)
- 【c/c++】指针数组和数组指针
- n皇后(C++)
- 学习资源传送门
- C++ cout格式化输出(转)
- C语言中变量未赋值问题总结