Foo class:
#include <vector>
#include <algorithm>
using namespace std;
class Foo {
public:
Foo() { std::cout << "default construct" << std::endl;}
Foo(const Foo &f) : data(f.data) {std::cout << "copy construct" << std::endl;}
Foo sort() &&;
Foo sort() const &;
private:
vector<int> data;
};
Foo Foo::sort() && {
std::cout << "rvalue sort" << std::endl;
std::sort(data.begin(), data.end());
return *this;
}
Foo Foo::sort() const & {
std::cout << "lvalue sort" << std::endl;
return Foo(*this).sort();
}
main.cpp
#include <iostream>
#include <string>
#include "Foo.h"
using namespace std;
int main() {
Foo f;
f.sort();
}
result:
default construct
lvalue sort
copy construct
rvalue sort
copy construct
C++类与排序示例
本文介绍了一个C++类的实现,名为Fooclass,该类包含默认构造函数、拷贝构造函数以及两个用于排序成员变量vector的成员函数。通过实例化Fooclass并调用其sort方法,演示了如何在C++中使用std::sort进行排序。
2万+

被折叠的 条评论
为什么被折叠?



