ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

STL 1.3.2 修改,查找,统计,比较序列

2021-10-13 13:03:41  阅读:114  来源: 互联网

标签:arr 数组 1.3 STL 元素 int 地址 查找 arr1


一.修改 1--6

1.copy_n 复制前n个元素到新的数组

int arr1[4] = {1,3,2,4};

int arr2[4];

copy_n(arr1, 4, arr2);

int* Copy_N(int *arr, int n)  复制数组arr中前n个元素并作为函数返回值

{

     int *a=new int [n];

    copy_n(arr,n,a);

    return a;

}

2.swap(a,b)  交换两数值

int a=1, b=2;

swap(a, b);   \\ a=2,b=1

3.replace(arr, arr+4, i, e); i替换元素e

arr:替换首地址

arr+n:替换尾地址

i:要被替换的元素

e:替换成的元素

int arr[4] = {1,2,2,3};

replace(arr, arr+4, 2, 0);  \\ arr结果为{1,0,0,3}

4.fill(arr, arr+4, e将数组中的所有元素都重新赋值为e

arr:数组首地址

arr+n:数尾地址

e: 赋值元素

int arr[4] = {1,2,2,3};

fill(arr, arr+4, 5);\\ arr结果为{5,5,5,5}

5.reverse(arr,arr+n)将数组中的所有元素对称交换

int arr[4] = {1,2,3,4};

reverse(arr, arr+4);\\ arr结果为{4,3,2,1}

6.rotate(arr, arr+3, arr+5) 滚动

arr:数组首地址

arr+3:数组滚动最后一个元素的地址

arr+5:数组尾地址

int arr[5] = {0,1,2,3,4};

rotate(arr, arr+3, arr+5);  \\ arr结果为{3,4,0,1,2}

二.查找(无序数组),区别于binary_search(), Algorithm 1--2

1.find(arr,arr+n,e)若存在则返回第一个e所在的地址,否则返回数组尾地址

arr=数组首地址

arr+n:数组尾地址

e: 查找指定元素

int arr[4] = {1,3,2,3};

int *p = find(arr, arr+4, 3); // p结果为地址arr+1,存在

int *q = find(arr, arr+4, 0); // q结果为地址arr+4,不存在

2.Find_End(arr, arr+n, arr1, arr1+t) 无序数组arr中的查找指定子数组arr1是否存在,若存在则返回待查子数组arr1最后出现在原数组arr1的地址,否则返回原数组的尾地址

int arr[5] = {0,3,4,3,4};

int arr1[2] = {3,4};

int *p = find_end(arr, arr+5, arr1, arr1+2); // p结果为地址arr+3

三. 统计 count

count(arr,arr+n,x) 在数组中统计指定元素x出现的次数

int arr[5] = {0,3,4,3,4};

int cnt = count(arr,arr+5,3); // cnt结果为2

四. 相等比较 Equal

equal(arr1, arr1+n, arr2)  两个数组相等:数组个数相同,对应位置上的元素值相同

               equal就可以比较两个数组是否相等,返回比较真值(bool)

int arr1[2] = {3,4};

int arr2[2] = {3,4};

bool judge1 = equal(arr1, arr1+2, arr2); // judge1结果为地址true

标签:arr,数组,1.3,STL,元素,int,地址,查找,arr1
来源: https://blog.csdn.net/m0_51687384/article/details/120738799

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有