这是我在地图中查找值的代码:
bool myclass::getFreqFromCache( plVariablesConjunction& varABC, vector<plFloat>& freq )
{
std::map<plVariablesConjunction, std::vector<plFloat>>::iterator freqItr;
freqItr = freqCache.find(varABC);
if (freqItr != freqCache.end())
{
freq = freqItr->second;
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
"PlVariablesConjunction"是ProBT库数据类型.它包含运算符"==",如果找到两个变量,则返回true,否则返回false.
这是错误:
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\xfunctional(125): error C2678: binary '<' : no operator found which takes a left-hand operand of type 'const plVariablesConjunction' (or there is no acceptable conversion)
1> E:\ProBT22\probt-spl-2.2.0-expires-20121130-vc10-dynamic-release\include\plSymbol.h(71): could be 'bool operator <(const plSymbol &,const plSymbol &)' [found using argument-dependent lookup]
1> while trying to match the argument list …Run Code Online (Sandbox Code Playgroud) 为了研究目的,我用 C++ 开发了一个程序。需要几天时间才能完成。
现在我在我们的实验室 8 核服务器机器上执行它以快速获得结果,但我看到机器只为我的程序分配了一个处理器并且它仍然保持 13% 的处理器使用率(即使我将进程优先级设置为高级别和 8 核亲和力)。
(它是一个简单的面向对象程序,没有任何并行性或多线程)
如何从强大的服务器机器中获得真正的好处?提前致谢。
vector<unsigned int> x;
vector<unsigned int>::iterator itr;
unsigned int varF;
...
....
// find and delete an element from a vector.
itr = std::find(x.begin(), x.end(), varF); // <algorithm>
if (itr != x.end())
x.erase(itr);
//or
x.erase(std::remove(x.begin(), x.end(), varF), x.end());
Run Code Online (Sandbox Code Playgroud)
我想将此向量转换为指针向量
vector<unsigned int*> x;
Run Code Online (Sandbox Code Playgroud)
如何将上述功能转换为指针向量?