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

Вектор, состоящий из слов строки в том порядке, в каком они были записаны в исходной строке - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ GMP ошибка! http://www.cyberforum.ru/cpp-beginners/thread1048468.html
Делаю все как здесь написал MaXiDRoM_90 http://www.cyberforum.ru/cpp-builder/thread27891.html Работаю в VS2012 . Присоеденил gmp(и динамическую и статическую пробовал подключать, одна и таже ошибка!) , компилирую свой проект и пишет ошибку error C4146: применение унарного минуса к типу без знака; результат оставлен без знака c:\program files\microsoft visual studio...
C++ Настройка MSVS 2013 Добрый день. Может нажал не туда, может еще что, но если раньше при компиляции проекта просто появлялось консольное окошко с программой, то теперь вначале выдает кучу окон с контрольными значениями и памятью, и только потом программу. Такое бывало и раньше, лечил сбросом настроек, но в этот раз не помогло. Как это можно убрать? P.S. Среда разработки - Microsoft Visual Studio 2013 Express Edition. http://www.cyberforum.ru/cpp-beginners/thread1048461.html
C++ Работа с графикой
Срочно нужна помощь с выполнением следующих заданий... 1) На компоненте TImage расположить произвольный рисунок. При помощи кнопок на закладке или клавиш клавиатуры →, ←, ↑, ↓ организовать “прокрутку” рисунка в различных направлениях 2)Определить количество точек с целочисленными координатами, лежащих внутри окружности радиуса R с центром в точке (х0, у0).
Вычислить функцию с определенным шагом, используя ее разложение в степенной ряд. C++
Нужно сдавать зачет)) Прошу помочь решить задачу )) Для х изменяющегося от a до b с шагом (b-a)/k, где (k=10), вычислить функцию f(x), используя ее разложение в степенной ряд в двух случаях : а) для заданного n ; б) для заданной точности е (е=0,0001). Диапазон x:0,1<=x<=0,8 Число слагаемых ряда: n=3; Формула для вычисления суммы : S=X+X5 / 5+...+X4n+1/(4n+1)
C++ Удалить из отсортированного вектора, числа которые являются "квадратными" http://www.cyberforum.ru/cpp-beginners/thread1048454.html
Добрый день! Есть вопросы по некоторым функциям, помогите плиз. Вот допустим у меня идет сортировка вектора по убыванию, но не пойму как сделать сортировку только нечетных цифр? Я не пойму как мне удалить из отсортированного вектора, числа которые являются "квадратными". #include <iostream> #include <ostream>
C++ Перегрузка операторов Создайте класс Fraction (обыкновенная дробь), в котором реализовать перегрузку: оператора суммирования дробей, оператора суммирования дроби и целого числа, оператора умножения, деления, вычитания дробей, а также дроби и целого числа, оператора ~ для сокращения дроби, логических операторов ==, >=, <=. #include "stdafx.h" #include <iostream> #include <cmath> #include "Windows.h" class... подробнее

Показать сообщение отдельно
о_О_Кто_здесь
11 / 11 / 1
Регистрация: 06.06.2011
Сообщений: 152
12.01.2014, 20:30  [ТС]     Вектор, состоящий из слов строки в том порядке, в каком они были записаны в исходной строке
Цитата Сообщение от MrGluck Посмотреть сообщение
C++
1
2
3
4
5
int countNumber(const v_str& words, const std::string& word)
{
    v_str::const_iterator pos = std::find(words.begin(), words.end(), word);
    return pos == words.end() ? -1 : std::distance(words.begin(), pos) + 1;
}
Добавлено через 49 минут
Только у меня ищет точное соответствие, необходимо использовать find_if и написать свой предикат
Спасибо за ответ.
Твой пример работает, насчет find_if я понял и пробовал его использовать до этого. Не понимаю как его реализовать. Читал литературу, видел простейшие примеры и набивал их смотрел.
Но толку не вижу...

Пробовал изменить чуть-чуть допустим твой код:

C++
1
2
//к примеру что-то типо
   v_str::const_iterator it = std::find_if (words.begin(), words.end(), word)
тогда сразу выходят ошибки:
Кликните здесь для просмотра всего текста
Error 4 error C2064: term does not evaluate to a function taking 1 arguments c:\program files (x86)\microsoft visual studio 10.0\vc\include\algorithm 83

и ссылается на предикат...
C++
1
2
3
4
5
6
7
8
9
10
    // TEMPLATE FUNCTION find_if
template<class _InIt,
    class _Pr> inline
    _InIt _Find_if(_InIt _First, _InIt _Last, _Pr _Pred)
    {   // find first satisfying _Pred
    for (; _First != _Last; ++_First)
        if (_Pred(*_First)) //сюда...
            break;
    return (_First);
    }



Смотрел на такие примеры как:

1)
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
find_if(names.begin(),names.end(), [SearchName](const std::string& s)->bool
 {
     if (s.size() != SearchName.size()) return false;
     std::string comp = SearchName;
     for (unsigned i = 0; i<s.size(); ++i)
     {
         if (toupper(s[i]) != toupper(comp[i])) return false;
     }
     return true;
 });

2)
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
template <typename T>
Iter ComputerModel<T>::Find(Iter begin, Iter end, bool comparer)
{
   it = find_if(begin, end, comparer);
   return it;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru