//num[left++]=num[right--]运算的正确顺序
num[left]=num[right];
left++;
right--;
//错误的理解:
left++;
right--;
num[left]=num[right];
验证如下:
vector<int>n1;
n1.push_back(1);
n1.push_back(2);
n1.push_back(3);
n1.push_back(4);
int left = 0;
int right = 3;
n1[left++] = n1[right--];
for_each(n1.begin(), n1.end(), print1);
cout << left << " " << right << endl;
输出如下:
n1容器里索引为0的值改变了而不是索引1的。