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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2017, 22:49   #1
Kartophan
Новичок
Джуниор
 
Регистрация: 06.05.2017
Сообщений: 1
По умолчанию С++ Помогите пожалуйста я овощь!

Требуется удалить числа фибоначчи из вектора!
Я нагородил полную муть . Хотел по функциям сделать, но так и не сделал.
В начале я сам заполняю вектор, затем нахожу максимальный из этих элементов и создаю новый вектор с числами Фибоначчи и мне остается удалить те элементы, которые совпадают! Здесь и загвоздка !
—————————————————————
#include
#include
#include
#include
#include
using namespace std;
int main()
{ setlocale(LC_ALL,»Russian»);
int N;
int B;
int Max=0;
cout<<«Введите N»<>N;
std::vector Vector(N);
for(int i = 0; i < Vector.size();i++)
{
cout<<«Введите число, которое добавляете в вектор»<>B;
Vector[i] = B;
}
for(int i = 0; i < Vector.size(); i++)
{
cout << Vector[i] << ‘ ‘;
}
for (vector::size_type ip = 0; ip < Vector.size(); ++ip){
if (Max < Vector[ip])
Max = Vector[ip];
}
cout< std::vector Vector1;
Vector1.reserve(100);
int J;
std::vector Vector3;
Vector1[0]=1;
Vector1[1]=2;
cout< for ( int i = 0;Vector1[i]<=Max;i++)
{
Vector1[i+2] = Vector1[i] + Vector1[i+1];
cout<<» «< }
//здесь нужен код удаления
cout << «Вектор с удаленными элементами»<
for(int i = 0; i < Vector.size(); i++)
{
cout << Vector[i] << ‘ ‘;
}

return 0;
}

——————————————————————————————
/*int cnt = 0;
if (Vector[i] == Vector1[j])
vector.erase(vector.begin() + i )
*/ //так тоже пытался ничего не вышло

/*Vector.erase(remove_if(Vector.begi n(),Vector.end(), [&](int x) {
return find(Vector1.begin(), Vector1.end(), x) != Vector1.end();
} Vector.end());
copy(Vector.begin(),Vector.end(), ostream_iterator(cout, «,»));*/ //пытался так удалить, но ничего не вышло

auto new_end1 = std::remove_if(Vector.begin(), Vector.end(), [&](auto& el) { return std::find(Vector1.begin(), Vector1.end(), el) == Vector1.end(); });
Vector.erase(new_end1,Vector.end()) ;// выдает ошибку! в код блокс

пытался вспомогательным вектором, но я глупый и все безуспешно</h1>
пытался и так!
for(int i=0;i < Vector.size(); i++)
{
for(int j=0;j < Vector1.size(); j++)
{
if (Vector[i]==Vector1[j]){Vector.erase(Vector.begin()+i );}
}
}

вожу пальцем в код блокс!
Kartophan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зеленый овощь Елена-53 Софт 11 26.05.2013 09:09
Помогите создать програму для роботы с файлами, пожалуйста помогите нужно очень срочно Сергей Человек Фриланс 3 06.07.2009 19:30
Помогите Помогите Пожалуйста Решить Одну Задачку в Паскале!!! VisTBacK Помощь студентам 6 19.09.2008 13:44