//第四種周遊方式,auto關鍵字的另一種方式
cout << "C++11,第四種周遊方式,auto關鍵字" << endl;
for (auto i : m_testPoint)
{
cout << i.x << " " << i.y << endl;
i.x += 100;
}
//第四種周遊方式,auto 修改元素值不成功
cout << "修改元素值失敗" << endl;
for (auto i : m_testPoint)
{
cout << i.x << " " << i.y << endl;
}
#include <vector>
#include <iostream>
using namespace std;
struct Point
{
double x;
double y;
Point()
{
x = 0;
y = 0;
}
};
int main()
{
vector<Point> m_testPoint;
m_testPoint.clear();
m_testPoint.shrink_to_fit();
for (int i = 0; i < 10; ++i)
{
Point temp;
temp.x = i * i;
temp.y = i * i;
m_testPoint.push_back(temp);
}
//第一種周遊方式,下标
cout << "第一種周遊方式,下标通路" << endl;
for (int i = 0; i < m_testPoint.size(); ++i)
{
cout << m_testPoint[i].x << " " << m_testPoint[i].y << endl;
m_testPoint[i].x += 1000;
}
//第一種周遊方式,下标改元素值成功
cout << "第一種周遊方式,下标通路" << endl;
for (int i = 0; i < m_testPoint.size(); ++i)
{
cout << m_testPoint[i].x << " " << m_testPoint[i].y << endl;
m_testPoint[i].x -= 1000;
}
//第二種周遊方式,疊代器
cout << "第二種周遊方式,疊代器通路" << endl;
for (vector<Point>::iterator iter = m_testPoint.begin(); iter != m_testPoint.end(); iter++)
{
cout << (*iter).x << " " << (*iter).y << endl;
(*iter).y += 100;
}
//第二種周遊方式,疊代器修改元素值成功
cout << "第二種周遊方式,疊代器通路修改元素值" << endl;
for (vector<Point>::iterator iter = m_testPoint.begin(); iter != m_testPoint.end(); iter++)
{
cout << (*iter).x << " " << (*iter).y << endl;
(*iter).y -= 100;
}
//第三種周遊方式,auto關鍵字
cout << "C++11,第三種周遊方式,auto關鍵字" << endl;
for (auto iter = m_testPoint.begin(); iter != m_testPoint.end(); iter++)
{
cout << (*iter).x << " " << (*iter).y << endl;
(*iter).x += 100;
}
//第三種周遊方式, 修改元素值 成功
cout << "修改元素值" << endl;
for (auto iter = m_testPoint.begin(); iter != m_testPoint.end(); iter++)
{
cout << (*iter).x << " " << (*iter).y << endl;
(*iter).x -= 100;
}
//第四種周遊方式,auto關鍵字的另一種方式
cout << "C++11,第四種周遊方式,auto關鍵字" << endl;
for (auto i : m_testPoint)
{
cout << i.x << " " << i.y << endl;
i.x += 100;
}
//第四種周遊方式,auto 修改元素值不成功
cout << "修改元素值失敗" << endl;
for (auto i : m_testPoint)
{
cout << i.x << " " << i.y << endl;
}
return 0;
}