|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.05.2017, 22:49 | #1 |
Новичок
Джуниор
Регистрация: 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 );} } } вожу пальцем в код блокс! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Зеленый овощь | Елена-53 | Софт | 11 | 26.05.2013 09:09 |
Помогите создать програму для роботы с файлами, пожалуйста помогите нужно очень срочно | Сергей Человек | Фриланс | 3 | 06.07.2009 19:30 |
Помогите Помогите Пожалуйста Решить Одну Задачку в Паскале!!! | VisTBacK | Помощь студентам | 6 | 19.09.2008 13:44 |