Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
struct Person
{
string Name;
string Surname;
}
...
Person GetInfo( int personId );typedef pair<string, string> Person;
...
Person GetInfo( int personId );typedef string Name;
typedef string Surname;
typedef pair<Name, Surname> Person;
...
Person GetInfo( int personId );typedef string Name;
typedef string Surname;string capitalize(string s), которая меняет все маленькие буквы на заглавные и есть Name name;. У вас два варианта:Name capitalized_name = capitalize(name);string capitalized_name = capitalize(name);typedef string Name;
typedef string Surname;
typedef pair<Name, Surname> Person;
Person GetInfo(int personId);
void foo()
{
Person p = GetInfo(0);
Name n = p.second; // а не .first
}для которых родная письменность справа-налево — они вполне могут ошибиться.По-моему это было бы справедливо для функции getFullName, а вот getNameAndSurname вроде как определяет порядок.
cx = count_if (numbers, numbers+6, bind1st(equal_to<int>(),10) );val (FirstName, LastName) = getFirstAndLastNames()map< pair< int, int > >красавцы говорят, что такое объявление в плюсах не скомпилируется
код который не расслабляет
pair< string, string > GetContact( int contactID ); // Возвращаем имя и фамилию pair< string, pair< string, string > > GetContactID( int contactID ); // Имя, фамилия, отчествоpair< pair< string, pair< string, string > >, vector< pair< int, string > > > GetContactID( int contactID ); // имя, фамилия, отчество, и счета (id, alias) контакта pair< string, string > GetContact( int contactID );tr1::tuple<string, string, string> GetContact(int contactID);?Пациент:
— Доктор, мне больно, когда я делаю так — и изгибается в бараний рог.
Доктор:
— Так не делайте так
Это отличается — если код уже вызывается в клиентском коде, везде придется править обращения к элементам.
get<0>(foo) так и останется. Вот, если pair на tuple меняем, то будет занятно.В данном конкретном случае я бы даже не задумываясь определил структуру в качестве возвращаемого значения.
наглядность вывода кортежа универсальной функцией будет низкая (она ведь поля поименовать не сможет)
string GetInfo( int personId );
Почему пара и кортеж — это чаще всего плохо