例 vector<int> nums(10); // nums is nonconst
const vector<int>::iterator cit = nums.begin();
*cit = 1; // ok: cit can change its underlying element
++cit; // error: can't change the value of cit
例:讀入一段文本到 vector 對象,每個單詞存儲為 vector 中的一個元素。把 vector 對象中每個單詞轉(zhuǎn)化為小寫字母。輸出 vector 對象中轉(zhuǎn)化后的元素,每八個單詞為一行輸出
--摘自C++primer 3.14
//自己寫的一個代碼,于VS2008測試通過,因是VC6.0對標準C++支持不好,若要測試,需要更改預(yù)處理.
//用下標操作
#include <iostream>
#include <string>
#include <vector>
using std::vector;
using std::string;
using std::cout;
using std::cin;
using std::endl;
int main()
{
vector<string> svec;
string word;
while (cin>>word)
svec.push_back(word);
for (vector<string>::size_type ix=0;ix!=svec.size();++ix)
{
for (string::size_type index=0;index!=svec[ix].size();++index) //注: svec[ix].size()返回類型為 string::size_type
{
svec[ix][index]=tolower(svec[ix][index]);
}
}
for (vector<string>::size_type ix=0;ix!=svec.size();++ix)
{
cout<<svec[ix]<<' ';
if ((ix+1)%8==0)
{
cout<<endl;
}
}
getchar();
return 0;
}
//用iterator改進...
int main()
{
vector<string> svec;
string word;
while (cin>>word)
svec.push_back(word);
for (vector<string>::iterator iter=svec.begin();iter!=svec.end();++iter) //因要改寫,故應(yīng)用iterator
for (string::iterator iter2=(*iter).begin();iter2!=(*iter).end();++iter2)
*iter2=tolower(*iter2);
//上面兩行代碼亦改為: for (string::size_type index=0;index!=(*iter).size();++index)
//但不建議 (*iter)[index]=tolower((*iter)[index]);
int ix=0;
for (vector<string>::const_iterator iter=svec.begin();iter!=svec.end();++iter,++ix) //因只是讀取,故可用const_iterator
{
cout<<*iter<<' ';
if ((ix+1)%8==0)
{
cout<<endl;
}
}
getchar();
return 0;
}