Помогите решить задачу на С++, не очень понимаю как реализовать

В заголовочном файле inout.h объявлены функции:

#include <vector>
void print(const std::vector<int> &vec);
void read(std::vector<int> &vec);

В файле main.cpp содержится следующий код:

#include <algorithm>

int main() {
    std::vector<int> vec;
    read(vec);
    std::sort(vec.begin(), vec.end());
    print(vec);
    return 0;
}

Создайте файл print.cpp и реализуйте в ней функцию, объявленную в заголовочном файле. Она принимает ссылку на вектор и выводит все его значения на экран

Создайте файл read.cpp и реализуйте в ней функцию, объявленную в заголовочном файле. Она принимает ссылку на вектор и заполняет его значениями, введенными пользователем с клавиатуры. Формат ввода - в первой строчке задается длина вектора, во второй - его элементы

В файле сценария сборки CMake пропишите создание библиотеки inoutlib из файлов read.cpp и print.cpp. Подключите ее к основной цели проекта В файле main.cpp подключите заголовочный файл inout.h и протестируйте работу программы

Пример ввода: 5 6 3 2 1 4 Вывод: 1 2 3 4 6


Ответы (1 шт):

Автор решения: Александр Козлов

main.cpp:

#include <algorithm>
#include <vector>
#include "inout.h"

int main() {
    std::vector<int> vec;
    read(vec);
    std::sort(vec.begin(), vec.end());
    print(vec);
    return 0;
}

inout.h

#ifndef INOUT_H
#define INOUT_H

#include <vector>
void print(const std::vector<int> &vec);
void read(std::vector<int> &vec);

#endif // INOUT_H

print.cpp:

#include "inout.h"
#include <iostream>

void print(const std::vector<int> &vec){
    for(auto& elem : vec){
        std::cout<<elem<<std::endl;
    }
}

read.cpp

#include "inout.h"
#include <iostream>
using namespace std;

void read(std::vector<int> &vec) {
    int n;
    std::cin >> n;
    for (int i = 0; i < n; i++) {
        int x;
        std::cin >> x;
        vec.push_back(x);
    }
}

CMAKE: Если у вас IDE не Qt Creator, то find_package пишите свой, который создается по дефолту при создании нового проекта

cmake_minimum_required(VERSION 3.14)

project(untitled13 LANGUAGES CXX)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core)

add_library(inoutlib print.cpp read.cpp)
add_executable(untitled13
  main.cpp  
  inout.h
  print.cpp  
  read.cpp
)
target_link_libraries(untitled13 Qt${QT_VERSION_MAJOR}::Core)
→ Ссылка