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

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

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

Найти длину самого короткого и самого длинного слова C++
Дана строка содержащая текст. Найти длину самого короткого и самого длинного слова. C++
Дана строка, содержащая текст. Найти длину самого короткого и самого длинного слова. C++
C++ Найти длину самого короткого слова и самого длинного слова в строке
Найти длину самого короткого и самого длинного слова. C++
Строки (Найти длину самого короткого и самого длинного слова, а также сами эти слова) C++
C++ Найти длину самого короткого и самого длинного слова, а также сами эти слова
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Renji
1604 / 1052 / 257
Регистрация: 05.06.2014
Сообщений: 3,135
04.01.2016, 08:47     Вывод из вектора самого короткого и самого длинного string значения #2
Ну, во-первых, у стригов есть метод size() (str.size()) возвращающий их длину. Во-вторых, их и самих можно сравнивать как числа (str1<str2). Только сразу уточняю, сравнивать можно только стринги, со строками в стиле Си фокус не сработает ("abcd"<"efg" даст несколько не то, что вы ожидали).
DocC
336 / 65 / 26
Регистрация: 22.12.2010
Сообщений: 138
04.01.2016, 11:10     Вывод из вектора самого короткого и самого длинного string значения #3
Вы забегаете немного вперёд по учебнику Кёнига. То, что вы просите, находится на 89стр. Более того, работать дальше вы будете не просто со строками, а даже со структурами.
GbaLog-
Не Эксперт C++
1883 / 732 / 201
Регистрация: 24.08.2014
Сообщений: 2,894
Записей в блоге: 1
Завершенные тесты: 2
04.01.2016, 12:28     Вывод из вектора самого короткого и самого длинного string значения #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;
Somebody
2775 / 1588 / 142
Регистрация: 03.12.2007
Сообщений: 4,162
Завершенные тесты: 1
04.01.2016, 13:35     Вывод из вектора самого короткого и самого длинного string значения #5
makfak, во-первых, минимум и максимум требуется искать по длине, во-вторых, сортировать ради нахождения минимума и максимума неэффективно.
Shakior
1 / 1 / 0
Регистрация: 29.08.2015
Сообщений: 38
Завершенные тесты: 1
04.01.2016, 13:59     Вывод из вектора самого короткого и самого длинного string значения #6
А в чем собственно проблема? 2 переменные(самая короткая и длинная строка), в цикле проходите от начала до конца вектора и сравниваете их длины со значением длины элемента вектора, меньше самой короткой - замена, больше самой длинной - замена)
GbaLog-
Не Эксперт C++
1883 / 732 / 201
Регистрация: 24.08.2014
Сообщений: 2,894
Записей в блоге: 1
Завершенные тесты: 2
04.01.2016, 14:46     Вывод из вектора самого короткого и самого длинного string значения #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;
Somebody
2775 / 1588 / 142
Регистрация: 03.12.2007
Сообщений: 4,162
Завершенные тесты: 1
04.01.2016, 17:40     Вывод из вектора самого короткого и самого длинного string значения #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);
Slide
1 / 1 / 1
Регистрация: 21.11.2015
Сообщений: 20
04.01.2016, 17:54  [ТС]     Вывод из вектора самого короткого и самого длинного string значения #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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2016, 18:11     Вывод из вектора самого короткого и самого длинного string значения
Еще ссылки по теме:

Разработать программу, осуществляющую поиск самого короткого и самого длинного слова во вводимом тексте C++
Заменить содержимое самого короткого на содержимое самого длинного C++
C++ Поиск самого короткого и самого длинного слова массива
C++ Определить длину самого длинного и самого короткого слова
C++ Как определить длину самого короткого слова из строки без библиотеки string на С++

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

Или воспользуйтесь поиском по форуму:
gru74ik
04.01.2016, 18:11     Вывод из вектора самого короткого и самого длинного string значения
  #10

Не по теме:

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

Yandex
Объявления
04.01.2016, 18:11     Вывод из вектора самого короткого и самого длинного string значения
Ответ Создать тему

Метки
string, вектор
Опции темы

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