Как из вектора выводить самую длинную строку и ее индекс?
Написал код согласно условиям,
вот условие задачи: В векторе строк
some_vector
найдите самую длинную строку и её индекс. Выведите её в соответствии с форматом выходных данных. Если несколько строк имеют одинаковую длину, выведите первую из них.
но компилятор яндекс практикума не принимает, указывая на:
Неправильно обработан общий случай и неправильно обработан случай нескольких
строк максимальной длины.
Не могу понять, где именно неправильно написано ?
// Найдите самую длинную строку и её индекс в some_vector
int longest_index = 0;
int current_index = 0;
for(string num : some_vector){
int siz = some_vector[longest_index].size();
int siz1 = some_vector[current_index].size();
if(siz1 > siz){
longest_index = current_index;
}
current_index +=1;
}
cout<<"Longest string \""<<some_vector[longest_index]<< "\" at index "<< current_index<<endl;
Ответы (1 шт):
Автор решения: slava
→ Ссылка
правильное решение:
// Найдите самую длинную строку и её индекс в some_vector
int longest_index = 0;
int current_index = 0;
for (string num : some_vector){
if (num.size() > some_vector[longest_index].size() ){
longest_index = current_index;
}
current_index += 1;
}
cout <<"Longest string \"" <<some_vector[longest_index]<< "\" at index "<<longest_index;