|
发表于 2020-7-25 14:12:15
|
显示全部楼层
本楼为最佳答案
- template<typename T>
- int Swap(T* one, T* another) {
- if (one == nullptr || another == nullptr) {
- return 0;
- }
- if (one == another || *one == *another) {
- return 0;
- }
- T temp = *one;
- *one = *another;
- *another = temp;
- return 1;
- }
- template<typename T>
- int SwapFrontBack(std::vector<T> &v) {
- return Swap(&*v.begin(), &*(v.end()-1) );
- }
- void PrintInts(std::vector<int> &v) {
- for (auto it = v.begin(); it != v.end(); it++) {
- std::cout << *it << " ";
- }
- std::cout << std::endl;
- }
- int main() {
- {
- std::vector<int> v{1, 2, 3, 4, 5};
- PrintInts(v);
- SwapFrontBack(v);
- PrintInts(v);
- }
- {
- std::vector<int> v{};
- PrintInts(v);
- SwapFrontBack(v);
- PrintInts(v);
- }
- {
- std::vector<int> v{1};
- PrintInts(v);
- SwapFrontBack(v);
- PrintInts(v);
- }
- return 0;
- }
复制代码 |
|