#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;
}
在用宏时,一定要加括号,否则只执行一句话。