出现了问题,请解决:6 46 C:\Users\win\Desktop\sort1.cpp [Error] in C++98 'numbers' must be initialized by constructor, not by '{...}'
时间: 2024-04-22 15:26:34 浏览: 102
这个问题是因为你的编译器不支持使用花括号初始化方式来初始化`vector`容器。C++98标准要求在创建`vector`对象时,只能通过构造函数进行初始化。
解决这个问题的方法之一是使用构造函数来初始化`vector`,然后再逐个添加元素。下面是一个示例:
```cpp
#include <iostream>
#include <algorithm>
#include <vector>
int main() {
std::vector<int> numbers;
numbers.push_back(5);
numbers.push_back(2);
numbers.push_back(8);
numbers.push_back(1);
numbers.push_back(9);
// 使用 sort 对 vector 中的元素进行排序
std::sort(numbers.begin(), numbers.end());
// 输出排序后的结果
for (int num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
在上述示例中,我们首先创建了一个空的`vector`对象 `numbers`,然后使用 `push_back` 方法逐个添加元素。接下来的代码与之前的示例相同,使用 `sort` 函数对 `numbers` 中的元素进行排序。
这样修改后,你应该能够成功编译和运行程序,并得到正确的排序结果。
阅读全文