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++、数据结构、算法相关的知识:
相关文章推荐
- C++中一些简单的数组算法(矩阵相乘) 第二篇
- 算法导论 4.1-5 最大子数组问题 线性时间算法 C++简单实现
- 【算法专题】工欲善其事必先利其器—— C++ STL中vector(向量/不定长数组)的常用方法总结
- C++ STL 算法 --- 你可能不知道的一些用法
- 数组数据去重简单算法
- 算法导论------------栈(stack)简单的数组实现
- 一个简单的算法---实现找出数组中一个数字出现次数最多的数字
- 对指针数组,数组指针,函数指针数组,函数数组指针的一些简单理解
- 数组左旋转k位 —— C++标准算法库中最悲剧的函数:rotate
- 【题目19】一些简单的算法练习题(1)
- 对“求数组中所有和为某固定数的所有数对”的算法的简单思考
- 一些笔试常考简单算法小结
- 简单LRU算法实现的Cache(C++)
- php扩展开发笔记(5)一些数组操作相关的宏和简单示例
- c++用二维数组实现多个字符数组的长度变换(微难一些)
- 【学习笔记四】- 用js实现的一些数组操作和算法
- c++ 返回数组以及指针的一些问题
- C++ : 用proxy Class实现简单的二维数组。
- 求数组相邻元素差值的最大值快速算法(C++版)
- javascript中的一些常用的数组算法总结