C++中一些简单的数组算法 第一篇

13 篇文章 3 订阅

C++ 向量合并:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
//向量的合并
vector<int> MergeVector(vector<int>, vector<int>);

int main()
{
    //声明向量LA
    vector<int> LAVector = { 3,5,8,11 };
    //声明向量LB
    vector<int> LBVector = { 2,6,8,9,11,15,20 };
    //声明向量LC,用于存储合并后的向量
    vector<int> LCVector = MergeVector(LAVector, LBVector);
    sort(LCVector.begin(), LCVector.end());
    for (auto i = LCVector.begin(); i < LCVector.end(); i++)
    {
        cout << *i << "指针中的值" << endl;
    }
    return 0;
}
vector<int> MergeVector(vector<int> a, vector<int> b)
{
    a.insert(a.end(), b.begin(), b.end());
    return a;
}

//合并后输出:(2,3,5,6,8,8,9,11,11,15,20)

C++中数组倒置:

#include  <iostream>
using namespace std;
int *ReversArray(int*, int);
int main()
{
    //n代表数组中元素的个数
    int arr[100], n;
    cout << "输入你想要插入的数字";
    cin >> n;
    for (auto i = 0; i < n; i++)
    {
        cout << "输入数字:" << i + 1 << ":";
        cin >> arr[i];
    }
    ReversArray(arr, n);
    cout << "输出倒置后的数组" << endl;
    for (auto i = 0; i < n; i++)
    {
        cout << *(arr + i) << endl;
    }
    return 0;
}
//倒置函数,size代表数组的长度
int *ReversArray(int a[], int size)
{
    for (auto i = 0, j = size - 1; i < size / 2; i++, j--)
    {
        auto temp = a[i];
        a[i] = a[j];
        a[j] = temp;
    }
    return a;
}

C++中合并两个数组:

#include <iostream>
using namespace std;
int main()
{
    int array1[50], array2[50], size1, size2, mergeArray[100];
    //合并后的数组的大小
    int size = 0;
    cout << "输入第一个数组的大小:" << endl;
    cin >> size1;
    //向数组array1中添加元素
    for (auto i = 0; i < size1; i++)
    {
        cin >> array1[i];
    }
    cout << "输入第二个数组的大小:" << endl;
    cin >> size2;
    //向array2中添加元素
    for (auto i = 0; i < size2; i++)
    {
        cin >> array2[i];
    }
    //把array1复制给mergeArray数组
    for (auto i = 0; i < size1; i++)
    {
        mergeArray[i] = array1[i];
    }
    size = size1 + size2;
    //向数组的尾部添加元素,数组的初始长度等于array1数组的长度
    for (auto i = 0, k = size1; k < size; i++, k++)
    {
        mergeArray[k] = array2[i];
    }
    cout << "合并后的数组是:" << endl;
    for (auto i = 0; i < size; i++)
    {
        cout << mergeArray[i] << endl;
    }
    return 0;
}
//array1={0,1,2,3,4}
//array2={5,6,7,8}
//合并后输出数组为:mergeArray={0,1,2,3,4,5,6,7,8};

C++中两个矩阵的加法运算:

#include <iostream>
using namespace std;
//两个矩阵的加法运算
int main()
{
    //第一个矩阵的相关声明
    int aRow, aCol, materix_1[10][10];
    cout << "输入第一个矩阵的行数和列数:" << endl;
    cin >> aRow >> aCol;
    cout << "往矩阵一中添加元素" << endl;
    for (auto i = 0; i < aRow; i++)//行
    {
        for (auto j = 0; j < aCol; j++)//列
        {
            cin >> materix_1[i][j];
        }
    }
    //第二个矩阵的相关声明
    int bRow, bCol, materix_2[10][10];
    cout << "输入第二个矩阵的行数和列数:" << endl;
    cin >> bRow >> bCol;
    cout << "往矩阵二中添加元素" << endl;
    for (auto i = 0; i < bRow; i++)//行
    {
        for (auto j = 0; j < bCol; j++)//列
        {
            cin >> materix_2[i][j];
        }
    }
    //执行矩阵相加,矩阵相加要求矩阵的行数和列数都相等
    int sum[10][10];
    for (auto i = 0; i < aRow; i++)
    {
        for (auto j = 0; j < bCol; j++)
        {
            sum[i][j] = materix_1[i][j] + materix_2[i][j];
        }
    }
    cout << "两个矩阵相加之后的值为:" << endl;
    //输出相加后的矩阵的值
    for (auto i = 0; i < aRow; i++)
    {
        for (auto j = 0; j < bCol; j++)
        {
            cout << (sum[i][j]) << endl;
        }
    }
    return 0;
}

欢迎关注我的公众号,每周分享一些Unity3D、C++、数据结构、算法相关的知识:


微信公众号

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值