Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2009, 19:38   #1
Наташенька
Пользователь
 
Аватар для Наташенька
 
Регистрация: 20.12.2008
Сообщений: 26
По умолчанию Один маленький вопросик:)

как сделать так, чтобы удалялся неподходящий по условию элемент вектора?

Код:
#include <vector>
using namespace std;

template<class InputIterator>
void print_seq(InputIterator first, InputIterator last,
			const char *prompt="",     
			const char *separator=" ", 
			const char *end="\n")      
{
  cout<<prompt;
  while (first!=last)
    cout<< *first++<<separator;
  cout<<end;
}
void main(){
vector<int> v(0);
cout<<"Vector"<<endl;
print_seq(v.begin(),v.end());
//int A[3]={1,2,3};
//print_seq(&A[0],&A[3]);
int P;
cout<<"Vvedite chisla"<<endl;
for(int i=0; i<3; i++)
{cin>> P;
v.push_back(P);}
print_seq(v.begin(),v.end());
for(int i=0; i<3; i++)
{if(v[i]<100)
{v[i]=0;
//v.erase(v[i]);  //как сделать так, чтобы удалялся неподходящий по условию элемент вектора?;)
}}
cout<<"Izmenennuy vector"<<endl;
print_seq(v.begin(),v.end());
}
Наташенька вне форума Ответить с цитированием
Старый 24.09.2009, 19:48   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Вот такой цикл сделайте:
Код:
for(int i=0; i<v.size(); i++)
 if(v[i]<100)
  v.erase(v.begin()+i--);
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 24.09.2009, 19:48   #3
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

v.erase(v.begin() + i); - вот так, например )
netrino вне форума Ответить с цитированием
Старый 24.09.2009, 20:21   #4
Наташенька
Пользователь
 
Аватар для Наташенька
 
Регистрация: 20.12.2008
Сообщений: 26
По умолчанию

Спасибо
Наташенька вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Один маленький шаг для человека, но гигантский скачок для всего человечества unicode Свободное общение 676 12.02.2018 07:22
Один маленький вопросик! Как написать функцию доступа к массиву типа char:) Наташенька Общие вопросы C/C++ 3 22.05.2009 16:12
Маленький вопросик))) Fintos Компьютерное железо 6 29.04.2009 18:54
[autorun] еще один вопросик Ivan_assm Помощь студентам 5 04.11.2007 21:20