-1

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

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

我想将 A 中的 2 替换为 3、3 替换为 5 和 5 替换为 2。这些替换基于 B 中的元素。

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

编辑:另一个例子:

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

这意味着我必须将 3 替换为 2、2 替换为 1 和 1 替换为 3(参见 B)

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

2 回答 2

2

您可能想查看 std::rotate (first, middle, end); 所以你的代码将类似于

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

链接是

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

于 2013-08-25T16:51:44.733 回答
0

这是您的代码的样子:

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

尽管这可能不是最有效的方法。

于 2013-08-25T16:53:54.803 回答