C++ 动态输入排序,本题要求实现一个函数input,能够输入n个整数。
时间: 2024-09-10 15:03:43 浏览: 40
基于C++,写一个计算求和的函数模板,用户从键盘输入若干整数,以-1为结束标志,实现对用户输入的值进行求和,并返回求和结果
在C++中,动态输入排序通常涉及到动态内存分配和数据结构,比如数组或vector。下面是一个简单的示例,展示如何创建一个`input`函数,用于从用户那里获取输入并使用`std::cin`动态地插入到一个`std::vector<int>`中,然后对这个整数向量进行排序:
```cpp
#include <iostream>
#include <vector>
#include <algorithm> // 包含sort函数
// 函数声明
void input(int& n, std::vector<int>& numbers);
// 主函数
int main() {
int n;
std::vector<int> numbers;
// 输入元素个数
input(n, numbers);
// 确保输入有效
if (n <= 0) {
std::cerr << "Invalid number of elements!" << std::endl;
return 1;
}
// 获取所有输入并排序
for (int i = 0; i < n; ++i) {
std::cin >> numbers[i];
}
std::sort(numbers.begin(), numbers.end()); // 使用标准库sort函数进行排序
// 输出排序后的结果
for (const auto& num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
// 动态输入和添加元素的函数
void input(int& n, std::vector<int>& numbers) {
std::cout << "Enter the number of integers to input: ";
std::cin >> n;
numbers.resize(n); // 预先分配足够的空间
}
```
在这个例子中,`input`函数接收两个引用,一个是整数变量`n`,另一个是用来存储输入值的动态大小向量。请注意,在实际应用中,应处理可能出现的输入错误,例如无效的整数输入。
阅读全文