欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vector, list, map在遍歷時(shí)刪除符合條件的元素實(shí)現(xiàn)方法

 更新時(shí)間:2016年12月25日 09:03:41   投稿:jingxian  
下面小編就為大家?guī)硪黄獀ector, list, map在遍歷時(shí)刪除符合條件的元素實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

直接看源碼,內(nèi)有詳細(xì)解釋

/*
	測(cè)試vector, list, map遍歷時(shí)刪除符合條件的元素
	本代碼測(cè)試環(huán)境: ubuntu12 + win7_x64
*/

#include <iostream>
#include <vector>
#include <list>
#include <map>
#include <iterator>

using namespace std;

void Remove1(vector<int> &vec, int num)
{
	for (vector<int>::iterator it = vec.begin(); it != vec.end();)
	{
		if (*it == num)
			it = vec.erase(it);
		else
			it++;
	}
}

void Remove2(list<int> &lst, int num)
{
	list<int>::iterator it;
	for (it=lst.begin(); it!=lst.end();)
	{
		if (*it == num)
		{
			lst.erase(it++);
		}
		else
			it++;
	}
}

void initMap(map<int, int>& m, int arr[], int arrLen)
{
	for(int i = 0; i < arrLen; i++)
		m[i] = arr[i];
}

void Remove_map(map<int, int>& m, int num)
{
	map<int, int>::iterator it;

	for(it = m.begin(); it != m.end();)
	{
		if (it->second == num)
			m.erase(it++);
		else
			it++;
	}
}

void displayMap(map<int, int>& m)
{
	map<int, int>::iterator it = m.begin();
	while(it != m.end())
	{
		cout << "key = " << it->first << ", value = " << it->second << endl;
		it++;
	}
	cout << endl;
}

int main(void)
{
	int arr[] = {1, 3, 5, 5, 5, 13, 7, 5, 7, 9};
	int arrLen = sizeof(arr) / sizeof(arr[0]);

#if 1
	// test vector
	vector<int> vec(arr, arr+arrLen);
	Remove1(vec, 5);
	copy(vec.begin(), vec.end(), ostream_iterator<int>(cout, " "));
	cout << endl << endl;
#endif

	// test list
	list<int> lst(arr, arr+arrLen);
	Remove2(lst, 5);
	copy(lst.begin(), lst.end(), ostream_iterator<int>(cout, " "));
	cout << endl << endl;

	// test map
	map<int, int> m;
	initMap(m, arr, arrLen);
	Remove_map(m, 5);
	displayMap(m);

	return 0;
}

/*
Win7_x64運(yùn)行結(jié)果:
1 3 13 7 7 9

1 3 13 7 7 9

key = 0, value = 1
key = 1, value = 3
key = 5, value = 13
key = 6, value = 7
key = 8, value = 7
key = 9, value = 9

Ubuntu12運(yùn)行結(jié)果:
[zcm@cpp #54]$make
g++ -Wall -Os -DLINUX -o a a.cpp
[zcm@cpp #55]$./a
1 3 13 7 7 9 

1 3 13 7 7 9 

key = 0, value = 1
key = 1, value = 3
key = 5, value = 13
key = 6, value = 7
key = 8, value = 7
key = 9, value = 9

*/

以上就是小編為大家?guī)淼男【幱X得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧全部?jī)?nèi)容了,希望大家多多支持腳本之家~

相關(guān)文章

  • Qt使用SqlLite實(shí)現(xiàn)權(quán)限管理的示例代碼

    Qt使用SqlLite實(shí)現(xiàn)權(quán)限管理的示例代碼

    本文主要介紹了Qt使用SqlLite實(shí)現(xiàn)權(quán)限管理的示例代碼,管理員針對(duì)不同人員進(jìn)行權(quán)限設(shè)定,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • C數(shù)據(jù)結(jié)構(gòu)循環(huán)鏈表實(shí)現(xiàn)約瑟夫環(huán)

    C數(shù)據(jù)結(jié)構(gòu)循環(huán)鏈表實(shí)現(xiàn)約瑟夫環(huán)

    這篇文章主要介紹了C數(shù)據(jù)結(jié)構(gòu)循環(huán)鏈表實(shí)現(xiàn)約瑟夫環(huán)的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • QT實(shí)現(xiàn)TCP客戶端自動(dòng)連接

    QT實(shí)現(xiàn)TCP客戶端自動(dòng)連接

    這篇文章主要為大家詳細(xì)介紹了QT中一個(gè)TCP客戶端自動(dòng)連接的測(cè)試模型,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • C++的sstream標(biāo)準(zhǔn)庫詳細(xì)介紹

    C++的sstream標(biāo)準(zhǔn)庫詳細(xì)介紹

    以下是對(duì)C++中的的sstream標(biāo)準(zhǔn)庫進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下
    2013-09-09
  • C++中繼承的概念和定義

    C++中繼承的概念和定義

    這篇文章主要介紹了詳解C++ 中的概念和定義,幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下,希望能給你帶來幫助
    2021-08-08
  • c語言程序調(diào)試方法整理

    c語言程序調(diào)試方法整理

    在本篇文章里小編給大家正里的是關(guān)于c語言程序調(diào)試方法整理內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-03-03
  • Qt6子窗口全屏顯示的實(shí)現(xiàn)示例

    Qt6子窗口全屏顯示的實(shí)現(xiàn)示例

    在Qt開發(fā)中,有時(shí)候需要讓程序窗口全屏顯示,本文主要介紹了Qt6子窗口全屏顯示的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • 純C語言:分治快速排序源碼分享

    純C語言:分治快速排序源碼分享

    這篇文章主要介紹了分治快速排序源碼,有需要的朋友可以參考一下
    2014-01-01
  • C++中的變長(zhǎng)參數(shù)深入理解

    C++中的變長(zhǎng)參數(shù)深入理解

    變長(zhǎng)參數(shù)的函數(shù),即參數(shù)個(gè)數(shù)可變、參數(shù)類型不定的函數(shù)。設(shè)計(jì)一個(gè)參數(shù)個(gè)數(shù)可變、參數(shù)類型不定的函數(shù)是可能的,最常見的例子是printf函數(shù)、scanf函數(shù)和高級(jí)語言的Format函數(shù)。最近的一個(gè)項(xiàng)目中就遇到這么一個(gè)相關(guān)的問題,感興趣的朋友們下面來一起看看吧。
    2016-10-10
  • 淺析C++中的間接宏函數(shù)

    淺析C++中的間接宏函數(shù)

    這篇文章主要介紹了C++中的間接宏函數(shù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04

最新評(píng)論