我正在研究这一小段代码,尽管它按照我的预期工作,但我需要对其进行优化。请给我建议一些想法。有没有办法优化这段代码?
这里是我的代码重要的一块:
std::replace_if(inputImage,inputImage+ m_xDim*m_yDim*m_zDim, bind2nd(std::less<float>(), 0), 0); // replace the values <0 with 0 of array input
std::replace_if(inputImage,inputImage+ m_xDim*m_yDim*m_zDim, bind2nd(std::greater<float>(), 4095), 4095); // replace the values >4095 with 4095 of array input
正如你看到的我是做inputImage的价值要与在区间[0,4095]。但是,很显然,这不是有效的代码,因为我可以有一个循环运行,并在一次拍摄两个作业。但是,这变成了C风格而不是C++。
有什么方法可以使用replace_if并且一举完成这两件事。
如果您需要优化中,“C++看”不是一个说法了。 – moala
@moala:完全不同意。这不是因为你需要优化你需要丑陋的原始迭代器代码。 C++风格甚至可能比你自己做得更好。这只是挑选正确工具的问题(正如答案中所显示的那样)。 – KillianDS
@KillianDS:每个任务都没有工具,有时你必须建立你自己的任务专用工具。 – moala