@Acaunt

Что можете сказать про данный код?

Сделал обёртку, для личного пользования, над функциями:
cout;
cin;

Вот код, с примерами использования:
Код
#include <iostream>
#include <vector>

void output(std::vector <std::string> list) {
    int size = list.size();
    for (int i = 0; i < size; i++) {
        std::cout << list[i] << std::endl;
    }
}

std::string input() {
    std::string str;
    getline(std::cin, str);
    return str;
}

std::string num(auto number) {
    return std::to_string(number);
}

static std::vector <std::string> list;

int main() {
    output({"Hello World!"});
    
    list = {"Good time of day"};
    output(list);
    
    list = {
        "", 
        "I", 
        "Wish", 
        "You", 
        "Happiness", 
        ""
    };
    output(list);
    
    int sum = 5 + 7;
    output({"five plus seven = " + num(sum) + " - that's a good number"});
    
    list = { input() };
    output(list);
    
    output({ input() });
    return 0;
}
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ответы на вопрос 1
@dima20155
you don't choose c++. It chooses you
1. Если вам удобно такое, то здорово, применяйте, но как минимум в input я большого смысла не вижу, ибо это заменятся одной строкой и будет выглядеть более явно. Я бы предложил добавить в реализацию данных функций шаблоны, иначе для каждого типа данных, хранимых контейнером придется писать новую функцию. Можно даже тип контейнера в шаблон завернуть. Для обучения практика вам будет полезная.

2. Вы принимаете аргументы в функции по значению, что плохо в данном случае. Классика - принимать ко константной ссылке.

3. Имя лист для вектора неудачное, лучше array или strArray в вашем конкретном случае.

4. Функция NUM бесполезна, так как является обёрткой над понятной шаблонной функцией std::to_string. В вашем случае не ясно что делает функция при прочтении ее имени

5. Вы уверены, что код типа output({ input() }); вам необходим? Вы здесь выполняете слишком много лишних операций. Хотя по факту это должна быть просто одна строка std::cout
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы