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

Необходимо найти строку наибольшей длины и увеличить остальные строк в массиве к длине наибольшей строки, используя символ "!" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу позволяющую выводить информацию о системе http://www.cyberforum.ru/cpp-beginners/thread1094422.html
Помогите написать программу которая выводит: Системные цвета (15-28), системную информацию, директорию Windows. Цифры системных цветов как я понял относятся к тому что выложено в изображении.
C++ Отформатировать массив Задано массив строк произвольной длины. Отформатировать данный массив по ширине поля. http://www.cyberforum.ru/cpp-beginners/thread1094411.html
проверить класс C++
Всем привет. Проверьте пожайлуста класс и если нужно то посоветуйте что в него нужно добавить. Вот его условие:Создать динамический класс каталог на основе односвязного списка, где каждый элемент...
Написать программу, вычисляющую сумму и среднее арифметическое последовательности положительных чисел C++
Написать программу, вычисляющую сумму и среднее арифметическое последовательности положительных чисел, которые вводятся с клавиатуры. Через цикл While!
C++ После удаления элемента не выводится список http://www.cyberforum.ru/cpp-beginners/thread1094366.html
Здравствуйте! Подскажите пожалуйста ответ на такой вопрос: Почему после того как я удаляю первый элемент списка, то больше не могу вывести список на экран? При удалении 2 и далее элементов список...
C++ Это на языке С++ , а мне нужно на с. Переведите пожалуйста очень надо! Код C++ #include <iostream> #include <conio.h> #include <locale.h> #include <bitset> using namespace std; void printArr(int *a, int &n) подробнее

Показать сообщение отдельно
rrrFer
Заблокирован
11.02.2014, 20:57
Вот так ищешь строку наибольшей длины:
C++
1
2
tmp = *std::max_element(strings.begin(), strings.end(), 
        [](const std::string &a, const std::string &b) { return a.length() < b.length(); });
Вот так дополняешь строки до наибольшей длины восклицательными знаками:
C++
1
2
std::for_each(strings.begin(), strings.end(), 
        [=](std::string &a) { a += std::string(tmp.length() - a.length(), '!'); });
Добавлено через 2 минуты
Держи код целиком:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <vector>
#include <string>
#include <algorithm>
#include <iostream>
int main() {
    std::vector<std::string> strings;
    std::string tmp;
    
    strings.push_back("asd");
    strings.push_back("asghdd");
    strings.push_back("123");
    
    tmp = *std::max_element(strings.begin(), strings.end(), 
        [](const std::string &a, const std::string &b) { return a.length() < b.length(); });
        
    std::cout << tmp << std::endl;
    
    std::for_each(strings.begin(), strings.end(), 
        [=](std::string &a) { a += std::string(tmp.length() - a.length(), '!'); });
    
    for (auto t : strings) 
        std::cout << t << std::endl;
}
Но можно лучше, тут кнешно говнокод (там где строки дополняются знаками).
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru