我编写了以下代码,它必须在指定长度的字符串中搜索所有可能的两位数字组合:
#include <iostream>
#include <Windows.h>
int main ()
{
using namespace std;
cout<<"Enter length of array"<<endl;
int size;
cin>>size;
int * ps=new int [size];
for (int i=0; i<size; i++)
ps[i]=3;
int k=4;
SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS);
while (k>=0)
{
for (int bi=0; bi<size; bi++)
std::cout<<ps[bi];
std::cout<<std::endl;
int i=size-1;
if (ps[i]==3)
{
ps[i]=4;
continue;
}
if (ps[i]==4)
{
while (ps[i]==4)
{
ps[i]=3;
--i;
}
ps[i]=4;
if (i<k)
k--;
}
}
}
当程序在 Windows 7 上执行时,我看到 CPU 的负载只有 10-15%,为了让我的代码运行得更快,我决定将我的程序的优先级更改为高。但是当我这样做时,工作并没有增加,CPU 的负载保持不变。为什么CPU负载不变?不正确的说法SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS);
?或者这段代码不能更快地工作?