C++之Swap类

main.cpp

cpp 复制代码
#include <iostream>
#include <vector>
#include <ctime>
#include "Swap.h"

using namespace std;

int main()
{
    Array myArrays;

    srand(time(0));
    for (int i = 0; i < 7; ++i) {
        int tempArray = (rand() % 100); // 生成0到99之间的随机数
        myArrays.addArrayMember(tempArray);
    }

    myArrays.outPutOriginalResult();

    myArrays.swapArray();

    myArrays.outPutNowResult();

    return 0;
}

Swap.cpp

cpp 复制代码
#include "Swap.h"

using namespace std;

void Array::swap(int& a, int& b)
{
    int temp;
    temp = a;
    a = b;
    b = temp;
}

void Array::addArrayMember(int member)
{
    Arrays.push_back(member);
}

// 实现通过指针倒置数组内容的函数,原地修改
void Array::reverseArrayInPlace(int* arr, int size)
{
    for (int i = 0; i < size / 2; ++i) {
        swap(arr[i], arr[size - 1 - i]);
    }
}

void Array::swapArray()
{
    int* arrayPtr = Arrays.data();
    reverseArrayInPlace(arrayPtr, Arrays.size());
}

void Array::outPutOriginalResult()
{
    cout << "随机产生的数组内容为:";
    for (int num : Arrays) {
        cout << num << ",";
    }
    cout << endl;
}

void Array::outPutNowResult()
{
    cout << "倒置的数组内容为(原地修改):";
    for (int num : Arrays) {
        cout << num << ",";
    }
    cout << endl;
}

Swap.h

cpp 复制代码
#include <iostream>
#include <vector>

using namespace std;

class Array
{
public:
    void swap(int& a, int& b); // swap
    void addArrayMember(int member);
    void reverseArrayInPlace(int* arr, int size);
    void outPutOriginalResult();
    void swapArray();
    void outPutNowResult();
private:
    vector<int> Arrays;
};
相关推荐
AI算法董同学1 分钟前
VS Code 配置 Anaconda Python 环境
开发语言·windows·vscode·python·编辑器
s_little_monster10 分钟前
【C++】继承(下)
开发语言·c++·经验分享·笔记·学习·学习方法
林九生12 分钟前
【Golang】(推荐项目)Go后端工程项目
开发语言·后端·golang
聪根大牛成长日记!13 分钟前
STL容器之----string的常见接口介绍及模拟实现部分接口(c++)
开发语言·c++
重生成为码农‍13 分钟前
Java高级Day52-BasicDAO
java·开发语言·windows
GISer Liu15 分钟前
LeetCode从入门到超凡(四)深入浅出理解贪心算法
python·算法·leetcode·面试·职场和发展·贪心算法·datawhale
这是我5829 分钟前
C++黑暗迷宫
c++·其他·游戏·visual studio·随机·迷宫·黑暗
多多*32 分钟前
OJ在线评测系统 前端开发整合开源组件 Monaco Editor 并且开发创建题目页面
服务器·前端·javascript·数据库·算法·开源
学地理的小胖砸40 分钟前
【5米光学卫星(资源一号02D/02E卫星)】
开发语言·python·信息可视化·遥感·地理信息
c#上位机41 分钟前
C#从入门到精通(30)—C#Marshal类用法总结
开发语言·数据结构·c#