#include <iostream> #include <iterator> #include <vector> #include <string> #include <algorithm> /* Заданый массив строк. Определить строку максимальной длины, остальные компоненты массива дополнить пропусками в начале строки так, чтобы все строки имели одинаковую длину. */ bool CompFn(std::string s1, std::string s2) { return s1.length() < s2.length(); } int main() { std::ostream_iterator<std::string> out(std::cout, "\n"); std::vector<std::string> vec; // заполняем массив vec.push_back("Stroka 1"); vec.push_back("stroka 2"); vec.push_back("stroka 3"); // выводим на экран std::copy(vec.begin(), vec.end(), out); std::cout << std::endl; std::vector<std::string>::iterator iter, it2; // находим максимальный элемент iter = std::max_element(vec.begin(), vec.end(), CompFn); std::cout << "Max element is: " << (*iter) << "\n\n"; // дополняем остальные строки пробелами в начало for (it2 = vec.begin(); it2 != vec.end(); it2++) { if (it2 != iter) { (*it2).insert(0, (*iter).length() - (*it2).length(), ' '); } } std::copy(vec.begin(), vec.end(), out); return 0; } |