Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Проверить, входит ли один вектор в состав другого - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ удалить двумерный массив http://www.cyberforum.ru/cpp-beginners/thread933270.html
Здравствуйте, уважаемые. Встала тривиальная задача которую никак не получается решить(( float (*vertices); //есть указатель на массив. vertices = new float ; //создаю 2 мерный массив как...
C++ Рекурсия сортировки отбором Нужно написать программу, которая проводит сортировку отбором, т.е. выбирает из массива наименьшее значение, помещает в 1-ый элемент массива, и далее уменьшает массив на 1, проводя отбор из... http://www.cyberforum.ru/cpp-beginners/thread933252.html
Особенности использования указателей и ссылок в C++ при возврате из функции C++
Пусть у нас есть некий класс CBase и есть функция, которая создает и возвращает объект класса CBase. Создать она его может стеке или в куче, а вернуть может сам объект, ссылку на него или указатель…...
C++ Динамическое создание форм (Не MFC)
Допустим есть созданная форма в ресурснике, а в ней есть поле для ввода(Edit Control) и даже кнопка(Button)! :) Подскажите пожалуйста, как заставить Button создать еще одно поле для ввода? :)...
C++ allocate, как работает? http://www.cyberforum.ru/cpp-beginners/thread933209.html
template<class T> class Vec { public: typedef T* iterator; typedef const T* const_iterator; typedef size_t size_type; typedef T value_type; typedef T& reference; typedef const...
C++ Функция ввода вместо cin Здорова! Нужно написать функцию ввода вместо cin, которая бы читала строки. Я не знаю чем можно заменить cin. Нужно постараться сделать так что бы по быстродействию функция читала строки быстрее... подробнее

Показать сообщение отдельно
Bulat123
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 53

Проверить, входит ли один вектор в состав другого - C++

04.08.2013, 14:08. Просмотров 506. Ответов 4
Метки (Все метки)

Задача состоит в том, что надо проверить входит ли один вектор в состав другого, нужно вывести 1 или 0 (true или false). Проблема такова, что при отрицательном ответе выдает ошибку во время выполнения vector iterator not incrementable или vector iterator not dereferencable(до небольшого изменения в 1 строке, где производился явный инкремент итератора).

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 vector<int> vec1, vec2;
    int num, nums;
    bool eq = false;
    cout << "When you stop fillng a vector, please, enter some letter." << endl;
    cout << "How much numbers are in the first vector? ";
    cin >> nums;
    cout << "Filling the first vector:" << endl;
    for (int cnt = 0; cnt != nums; ++cnt) {
        cin >> num; 
        vec1.push_back(num);
    }
    cout << "How much numbers are in the second vector? ";
    cin >> nums;
    cout << "Filling the second vector:" << endl; 
    for (int cnt = 0; cnt != nums; ++cnt) {
        cin >> num; 
        vec2.push_back(num);
    }
    vector<int>::iterator iterSmallBegin = (vec1.size() > vec2.size()) ? vec2.begin() : vec1.begin(),
                          iterLargeBegin = (vec1.size() > vec2.size()) ? vec1.begin() : vec2.begin(),
                          iterSmallEnd = (vec1.size() > vec2.size()) ? vec2.end() : vec1.end(),
                          iterLargeEnd = (vec1.size() > vec2.size()) ? vec1.end() : vec2.end();
    for (; iterSmallBegin != iterSmallEnd; ++iterLargeBegin) {
        if (iterLargeBegin != iterLargeEnd) {
        eq = (*iterSmallBegin == *iterLargeBegin) ? true : false;    
        iterSmallBegin = (eq == true) ? ++iterSmallBegin : iterSmallBegin;
        }
    }
    cout << eq << endl;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru