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

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

Войти
Регистрация
Восстановить пароль
 
Slide
1 / 1 / 1
Регистрация: 21.11.2015
Сообщений: 20
#1

Вывод из вектора самого короткого и самого длинного string значения - C++

04.01.2016, 08:28. Просмотров 317. Ответов 9

Вывод из вектора самого короткого и самого длинного string значения
Подскажите как таковое сделать, если кому не трудно сможете ли вы написать код основываясь на только знаниях из учебника Эндрю Кёнига и Барбары My "Эффективное программирование на C++" по 71 страницу включительно. Просто вот отлично научили работать с числами, а как работать со string значениями в векторе я так и не понял.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2016, 08:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод из вектора самого короткого и самого длинного string значения (C++):

Дана строка, содержащая текст. Найти длину самого короткого и самого длинного слова. - C++
1. Дана строка, содержащая текст. Найти длину самого короткого и самого длинного слова. 2. 14.14. Имеется строка, содержащая буквы...

Дана строка содержащая текст. Найти длину самого короткого и самого длинного слова. - C++
помогите написать программу =) очень нужно=) Дана строка содержащая текст. Найти длину самого короткого и самого длинного слова.

Разработать программу, осуществляющую поиск самого короткого и самого длинного слова во вводимом тексте - C++
Разработать программу, осуществляющую поиск самого короткого и самого длинного слова во вводимом тексте. С комментами)

Найти длину самого короткого и самого длинного слова. - C++
Дана строка, содержащая текст. Найти длину самого короткого и самого длинного слова.

Найти длину самого длинного и самого короткого слова - C++
Дана строка символов. Найти длину самого длинного и самого короткого символа. Написать задачу с обращением к процедуре...

Определить длину самого длинного и самого короткого слова - C++
Помогите пожалуйста Я не понимаю как написать ввести массив символов, содержащий текст. Определить длину самого длинного и самого...

9
Renji
1927 / 1325 / 299
Регистрация: 05.06.2014
Сообщений: 3,819
04.01.2016, 08:47 #2
Ну, во-первых, у стригов есть метод size() (str.size()) возвращающий их длину. Во-вторых, их и самих можно сравнивать как числа (str1<str2). Только сразу уточняю, сравнивать можно только стринги, со строками в стиле Си фокус не сработает ("abcd"<"efg" даст несколько не то, что вы ожидали).
0
DocC
336 / 65 / 26
Регистрация: 22.12.2010
Сообщений: 138
04.01.2016, 11:10 #3
Вы забегаете немного вперёд по учебнику Кёнига. То, что вы просите, находится на 89стр. Более того, работать дальше вы будете не просто со строками, а даже со структурами.
0
GbaLog-
Любитель чаепитий
3011 / 1379 / 334
Регистрация: 24.08.2014
Сообщений: 4,899
Записей в блоге: 1
Завершенные тесты: 2
04.01.2016, 12:28 #4
Slide,
C++
1
2
3
4
// Допустим vec - это твой уже заполненный вектор
vector<string> vectmp = vec;
sort( vectmp.begin(), vectmp.end() );
cout << vectmp[0] << "\n" << vectmp[vectmp.size()-1] << endl;
0
Somebody
2791 / 1602 / 147
Регистрация: 03.12.2007
Сообщений: 4,197
Завершенные тесты: 1
04.01.2016, 13:35 #5
makfak, во-первых, минимум и максимум требуется искать по длине, во-вторых, сортировать ради нахождения минимума и максимума неэффективно.
0
Shakior
1 / 1 / 0
Регистрация: 29.08.2015
Сообщений: 40
Завершенные тесты: 1
04.01.2016, 13:59 #6
А в чем собственно проблема? 2 переменные(самая короткая и длинная строка), в цикле проходите от начала до конца вектора и сравниваете их длины со значением длины элемента вектора, меньше самой короткой - замена, больше самой длинной - замена)
0
GbaLog-
Любитель чаепитий
3011 / 1379 / 334
Регистрация: 24.08.2014
Сообщений: 4,899
Записей в блоге: 1
Завершенные тесты: 2
04.01.2016, 14:46 #7
Somebody, И всё-то вам не нравится.
C++
1
2
3
4
5
6
int max = 0, min = 0;
for( const auto& i : vec.size() ) {
    if( vec[max].size() < vec[i].size() ) max = i;
    if( vec[min].size() > vec[i].size() ) min = i;
}
cout << vec[min] << "\n" << vec[max] << endl;
0
Somebody
2791 / 1602 / 147
Регистрация: 03.12.2007
Сообщений: 4,197
Завершенные тесты: 1
04.01.2016, 17:40 #8
C++
1
2
auto cmpSize = [](const auto &a, const auto& b) { return a.size() < b.size(); };
auto minMaxStr = std::minmax_element(std::cbegin(vec), std::cend(vec), cmpSize);
0
Slide
1 / 1 / 1
Регистрация: 21.11.2015
Сообщений: 20
04.01.2016, 17:54  [ТС] #9
Цитата Сообщение от Somebody Посмотреть сообщение
C++
1
2
auto cmpSize = [](const auto &a, const auto& b) { return a.size() < b.size(); };
auto minMaxStr = std::minmax_element(std::cbegin(vec), std::cend(vec), cmpSize);
Попросил, чтобы дали ответ основываясь на данных автором знаний, то что вы пишите я вообще не понимаю

Добавлено через 5 минут
Что дальше, может кто нибудь разжевать как именно вы работали с теми циклами и что такое auto
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
30
31
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
#include <clocale>
 
using std::cout; using std::endl;
using std::cin; using std::string;
using std::vector; using std::sort;
using std::setlocale;
 
int main(){
 
setlocale(LC_ALL, "");
cout << "Введите пару слов: ";
string words;
 
vector<string> wordline;
 
while ( cin >> words ){
wordline.push_back(words);
}
 
typedef vector<string>::size_type vector_size;
vector_size size = wordline.size();
 
sort(wordline.begin(), wordline.end());
 
 
return 0;
}
0
gru74ik
04.01.2016, 18:11     Вывод из вектора самого короткого и самого длинного string значения
  #10

Не по теме:

Цитата Сообщение от Renji Посмотреть сообщение
у стригов есть метод size() возвращающий их длину
Лютые стриги! И методы у них лютые!

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

Найти длину самого короткого и самого длинного слова - C++
помогите решить Дана символьная строка, содержащая текст, который заканчивается точ¬кой. Найти длину самого короткого и самого длинного...

Поиск самого короткого и самого длинного слова массива - C++
Возникла проблема, программа наименьшим считает всегда первое слово #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;locale&gt; ...

Строки (Найти длину самого короткого и самого длинного слова, а также сами эти слова) - C++
Люди, подскажите, плиз, как написать програмку в с++ за условием, что дана строка, состоящая из слов, разделенных пробелами (одним или...

Найти длину самого короткого и самого длинного слова, а также сами эти слова - C++
Народ, помогите, пожалуйста, как мне написать код в с++ програмки, в которой дана строка, состоящая из слов, разделенных пробелами (одним...


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

Или воспользуйтесь поиском по форуму:
10
04.01.2016, 18:11
Ответ Создать тему
Опции темы

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