C ++,如何替换数组中的多个元素

时间:2013-08-25 16:47:26

标签: arrays replace

我在C ++中有两个数组:

int A[]={2, 3, 5, 1, 4};
int B[]={2, 3, 5}; 

我希望在A中将3乘3乘5和5乘2取代。这些替换基于B中的元素。

替换后,A'将是[3 5 2 1 4](所有替换都是就地和同时进行的)。

编辑:另一个例子:

A = [ 2 5 3 1 9] ,       B = [3 2 1]

这意味着我必须以2乘2乘1和1乘3取3(见B)

The result is A'= [ 1 5 2 3 9]

2 个答案:

答案 0 :(得分:2)

你可能想看看std :: rotate(first,middle,end);所以你的代码就像

    std::rotate(A, A+1, A+3);

链接

http://en.cppreference.com/w/cpp/algorithm/rotate

答案 1 :(得分:0)

以下是您的代码的样子:

for(i=0; i<5; i++)
for(j=0; j<2; j++)
   if (A[i] == B[j]){
       A[i] = B[j+1];
       break;
   }

虽然这可能不是最有效的方法。