#define EXCHANGE(a, b) (a)=(a)^(b);\
(b)=(b)^(a);\
(a)=(b)^(a)
void oddEvenNum(vector<int>& nums)
{
int oddEnd = 0;
int evenEnd = 0;
while(evenEnd < nums.size())
{
if(nums[evenEnd] % 2)
{
if(oddEnd != evenEnd)
{
EXCHANGE(nums[oddEnd], nums[evenEnd]);
}
oddEnd++;
}
evenEnd ++;
}
}
void outVector(vector<int>& num)
{
for(int i = 0 ; i < num.size(); i++)
cout<<num[i]<<" ";
cout<<endl;
}
int main()
{
/*Solution a;
vector<char> num1, num2;
for(int i = 1; i < 10; i++)
{
num1.push_back(i + '0');
num2.push_back(i + '0');
}
vector<char> num3;
num3.clear();
num3.push_back('2');
num3.push_back('3');
int b = a.toInt(num1);
cout<<b<<endl;
cout<<(int)'0'<<endl;*/
vector<int> num1, num2;
for(int i = 1; i <= 10; i++)
{
num1.push_back(i);
num2.push_back(rand()%2);
}
outVector(num1);
oddEvenNum(num1);
for(int i = 0; i < 10; i++)
cout<<num1[i]<<" ";
cout<<endl;
outVector(num2);
oddEvenNum(num2);
for(int i = 0; i < 10; i++)
cout<<num2[i]<<" ";
cout<<endl;
return 0;
}
在用宏时,一定要加括号,否则只执行一句话。
本文深入探讨了C++编程中利用宏定义实现元素交换的技巧,并通过实例展示了如何在整数数组中按奇偶排序。详细介绍了宏定义的使用规则和注意事项,同时提供了两个数组排序的完整代码示例。

被折叠的 条评论
为什么被折叠?



