С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
newbie666
Заблокирован
#1

Как искать по std::vecotr из std::pait по одному значению из пары? - C++

10.09.2013, 16:14. Просмотров 490. Ответов 8
Метки нет (Все метки)

?

 Комментарий модератора 
Пункт 4.7 Правил: Как можно более полно описывайте суть проблемы или вопроса, что было сделано для ее решения и какие результаты получены.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2013, 16:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как искать по std::vecotr из std::pait по одному значению из пары? (C++):

Не воспринимает ни std::cout, ни std::cin. Вобщем ничего из std. Также не понимает iostream - C++
Здравствуйте! Я хотел начать изучать язык C++. Набрал литературы. Установил Microsoft Visual C++ 2005 Express Edition. Образ диска...

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri - C++
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

STL std::set, std::pair, std::make_pair - C++
Я не знаю как описать тему в двух словах, поэтому не обращайте внимание на название темы. Собственно перейдем к нашим баранам: есть...

На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами - C++
подскажите есть вот такая задача. Есть список . Создать второй список, в котором будут все эти же числа, но не в виде строк, а в виде...

Std::begin() ,std::end(),std::copy - C++
...// int main() { std::vector&lt;double&gt; data;//Работает cout &lt;&lt; std::begin(data); double *data=new double; ...

Как можно еще использовать std::placeholders вне в связки с std::bind? - C++
Добрый день! Как можно еще использовать std::placeholders вне в связки с std::bind?

8
John Prick
824 / 757 / 152
Регистрация: 27.07.2012
Сообщений: 2,156
Завершенные тесты: 3
10.09.2013, 16:30 #2
Функциональный объект напиши свой, либо собери его из bind, select и т.д.
0
newbie666
Заблокирован
10.09.2013, 16:33  [ТС] #3
ну вот например
C++
1
2
3
4
5
6
std::vector<std::wstring,int> vec;
 
...
 
int x = std::find(vec.begin(),vec.end(),
    [&](std::pair<std::wstring,int> a){return a.first == L"THIS_ONE";})->second;
Компилятор ругается и не хочет принимать условие a.first == L"THIS_ONE"; ... как написать ему, что я ищу элемент в векторе, в котором в паре первый элемент равен L"THIS_ONE" ?
0
John Prick
824 / 757 / 152
Регистрация: 27.07.2012
Сообщений: 2,156
Завершенные тесты: 3
10.09.2013, 16:33 #4
Немного обманул: select1st, select2nd в стандарт не входят. Поэтому всё равно придётся что-то писать, чтобы извлечь элемент пары.
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
10.09.2013, 16:34 #5
http://www.cplusplus.com/reference/algorithm/find_if/
1
John Prick
824 / 757 / 152
Регистрация: 27.07.2012
Сообщений: 2,156
Завершенные тесты: 3
10.09.2013, 16:35 #6
std::vector<std::wstring,int> vec;
Наверное, всё-таки вот так:
C++
1
std::vector<std::pair<std::wstring,int> > vec;
0
newbie666
Заблокирован
10.09.2013, 16:38  [ТС] #7
Цитата Сообщение от John Prick Посмотреть сообщение
std::vector<std:air<std::wstring,int> > vec;
да..в слепую по быстрому написал ))) но у меня парой нормально написано ))

Добавлено через 1 минуту
спасибо Тулосба ! ) find_if - то что надо... Но всё же интересно, как это сделать обычным файндом для моего унарного оператора как бы ... ?
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
10.09.2013, 16:46 #8
Цитата Сообщение от newbie666 Посмотреть сообщение
Но всё же интересно, как это сделать обычным файндом
std::find ищет совпадение значения. Если бы использовался свой класс, а не std::pair, можно было бы перегрузить оператор сравнения. Но это изврат.
1
gray_fox
10.09.2013, 16:59     Как искать по std::vecotr из std::pait по одному значению из пары?
  #9

Не по теме:

C bind то жутковато будет, вроде

C++
1
2
3
int x = std::find_if(
      vec.begin(), vec.end()
    , std::bind(std::equal_to<std::wstring>(), std::bind(&std::pair<std::wstring, int>::first, _1), L"THIS_ONE"))->second;

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2013, 16:59
Привет! Вот еще темы с ответами:

Как правильно перевести std::wstring в std::string ? - C++
Собственно как? :)

Как привести std::wstring к std::string? - C++
Как привести std::wstring к std::string?

(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const& - C++
astxx::manager::connection::connection(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, unsigned short); ...

Std::count << std::hex << (long) 0x0a; Как сделать, чтоб от HEX значения ноль при выводе не убирался? - C++
сабж...( std::count &lt;&lt; std::hex &lt;&lt; (long) 0x0a; ) выводится просто a, вместо 0а, а надо чтоб было именно 0а... куда делся setw,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
10.09.2013, 16:59
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.