Удаление из вектора фруктов которые не нравятся.

Рубрика: C++, Дата: 2 May, 2013, Автор:

Используя вектор из параграфа 16.5.[2], запрограммируйте цикл для удаления из вектора всех фруктов которые вы не любите.

Задачка простая, мы просто добавляем в программу вектор в который записываем фрукты которые мы хотим удалить, а затем просто сравниваем что в векторе со всеми фруктами, если там есть название фрукта который мы хотим удалить, то мы просто удаляем элемент. Вот код.

//vector<string> ydalenie vsex citrycovux iz vektor
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
#include <string>
using std::string;
#include <vector>
using std::vector;
#include <algorithm>
using std::sort;
 
int main()
{
    vector<string> vec;
    string s;
	vector<string> vecF;
  //  string citry[2]={"apel","anan"};//macciv dl9 citrycovux

    while(s!="exit")
    {
        cout <<"Vvedite frukt ili exit"<<endl;
        cin >>s;
		if(s!="exit")
			vec.push_back(s);
    }

	s="";
	while(s!="exit")
    {
        cout <<"Vvedite fruktu kotorue vu ne lybite ili (exit)"<<endl;
        cin >>s;
		if(s!="exit")
			vecF.push_back(s);
    }
 
    //cortiruem
    sort(vec.begin(),vec.end());
 
    //ydalenie elementov nachinayuchixc9 na a
    vector<string>::iterator It;
	
    for(int i=0;i<vec.size();i++)
	{
		cout <<"vec.size()= "<<vec.size()<<" vec["<<i<<"]= "<<vec[i]<<endl;
		for(int j=0;j<vecF.size();j++)
		{
			if(vecF[j]==vec[i])
			{
				vec.erase(vec.begin()+i);//ydalenie elementa
				i--;
			}
		}
	}
	cout <<endl;

	//vuvod na ekran
	for(It=vec.begin();It!=vec.end();++It)
	{
		cout <<*It<<' ';
	}
	cout <<endl;
    
    return 0;
}

[youtube]http://www.youtube.com/watch?v=qhOT15pYcc4[/youtube]

rss