小编Dat*_*ner的帖子

错误C2678:二进制'<':找不到带左手操作数的运算符...(或者没有可接受的转换)

这是我在地图中查找值的代码:

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++ map

5
推荐指数
2
解决办法
7494
查看次数

在多处理器机器上执行 C++ 程序

为了研究目的,我用 C++ 开发了一个程序。需要几天时间才能完成。

现在我在我们的实验室 8 核服务器机器上执行它以快速获得结果,但我看到机器只为我的程序分配了一个处理器并且它仍然保持 13% 的处理器使用率(即使我将进程优先级设置为高级别和 8 核亲和力)。

(它是一个简单的面向对象程序,没有任何并行性或多线程)

如何从强大的服务器机器中获得真正的好处?提前致谢。

c++ multiprocess

3
推荐指数
1
解决办法
7452
查看次数

从指针向量中查找和删除元素?

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)

如何将上述功能转换为指针向量?

c++ vector

1
推荐指数
1
解决办法
1924
查看次数

标签 统计

c++ ×3

map ×1

multiprocess ×1

vector ×1