您的位置:首页 > 编程语言 > C语言/C++

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

2018-01-23 17:08 447 查看

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++、数据结构、算法相关的知识:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数组矩阵运算