日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

C?++迭代器iterator在string中使用方法介紹_C 語言

作者:潮.eth ? 更新時間: 2022-12-03 編程語言

一、正向迭代器

【例子】

//正向迭代器
void test1()
{
	string str1 = "abcdef";
	cout << "讀取字符串:" << endl;
	string::iterator it1 = str1.begin();
	while (it1 != str1.end())
	{
		cout << *it1 << " ";
		it1++;
	}
	cout << endl;
	cout << "每個字母向后移動一位:" << endl;
	string::iterator it2 = str1.begin();
	while (it2 != str1.end())
	{
		*it2 +=1;
		cout << *it2 << " ";
		it2++;
	}
	cout << endl;
}

【運行結(jié)果】

二、正向迭代器(只讀數(shù)據(jù))

const_iterator begin( ) const;

這種迭代器,只支持讀,不支持修改數(shù)據(jù)。

【例子】

//只讀正向迭代器
void test2()
{
	const string str1 = "abcdef";
	cout << "只能讀取字符串:" << endl;
	string::const_iterator it1 = str1.begin();
	while (it1 != str1.end())
	{
		cout << *it1 << " ";
		it1++;
	}
	cout << endl;
}

【問題】

為什么不能直接在 string::iterator it 前面加const?

答:這樣的話,const修飾的是it,it將無法被修改,并不是*it無法被修改。

it無法被修改的后果是無法遍歷。

三、反向迭代器

作用:從后往前讀。

【例子】

//反向迭代器
void test3()
{
	string str1 = "abcdef";
	cout << "反向讀取字符串:" << endl;
	string::reverse_iterator it1 = str1.rbegin();
	while (it1 != str1.rend())
	{
		*it1 += 1;
		cout << *it1 << " ";
		it1++;
	}
	cout << endl;
}

【運行結(jié)果】

四、反向迭代器(只讀)

【例子】

//反向迭代器(只讀)
void test4()
{
	const string str1 = "abcdef";
	cout << "反向只讀讀取字符串:" << endl;
	string::const_reverse_iterator it1 = str1.rbegin();
	while (it1 != str1.rend())
	{
		cout << *it1 << " ";
		it1++;
	}
	cout << endl;
}

五、auto來替換這些特別長類型名

是不是感覺這些類型名特別長?別擔(dān)心,用auto試試。

//auto
void test5()
{
	cout << "auto的演示" << endl;
	const string str1 = "abcdef";
	cout << "反向只讀讀取字符串:" << endl;
	auto it1 = str1.rbegin();
	while (it1 != str1.rend())
	{
		cout << *it1 << " ";
		it1++;
	}
	cout << endl;
}

原文鏈接:https://blog.csdn.net/m0_54381284/article/details/127548820

欄目分類
最近更新