请用c++完成:#include <iostream> #include <vector> #include <algorithm> using namespace std; template<class T> class MyVector { public: void push_back(T x) { vec.push_back(x); } void sort() { std::sort(vec.begin(), vec.end()); } void output1() { for (int i = 0; i < vec.size(); i++) { cout << vec[i] << " "; } cout << endl; } void output2() { for (auto it = vec.begin(); it != vec.end(); it++) { cout << *it << " "; } cout << endl; } void output3() { for_each(vec.begin(), vec.end(), [](T x) { cout << x << " "; }); cout << endl; } private: vector<T> vec; }; int main() { int x; MyVector<int> v; while (cin >> x && x != 0) { v.push_back(x); } v.sort(); v.output1(); v.output2(); v.output3(); return 0; }
时间: 2023-12-18 07:05:26 浏览: 64
使用include <iostream>时一定要加using namespace std
以下是 C++ 代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
template<class T>
class MyVector {
public:
void push_back(T x) {
vec.push_back(x);
}
void sort() {
std::sort(vec.begin(), vec.end());
}
void output1() {
for (int i = 0; i < vec.size(); i++) {
cout << vec[i] << " ";
}
cout << endl;
}
void output2() {
for (auto it = vec.begin(); it != vec.end(); it++) {
cout << *it << " ";
}
cout << endl;
}
void output3() {
for_each(vec.begin(), vec.end(), [](T x) { cout << x << " "; });
cout << endl;
}
private:
vector<T> vec;
};
int main() {
int x;
MyVector<int> v;
while (cin >> x && x != 0) {
v.push_back(x);
}
v.sort();
v.output1();
v.output2();
v.output3();
return 0;
}
```
该程序定义了一个模板类 MyVector,其中包含了 push_back,sort,output1,output2 和 output3 函数。在主函数中,首先创建了一个 MyVector 类型的对象 v,并循环读入整数并插入到 v 中。然后,对 v 进行排序,并输出三种不同的方式:output1 输出方式使用下标访问 vector 中的元素,output2 输出方式使用迭代器遍历 vector 中的元素,output3 输出方式使用 for_each 函数遍历 vector 中的元素。
阅读全文