Помогите решить задачу на С++, не очень понимаю как реализовать
В заголовочном файле 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)