计算两个等差数列的更好方法
Better way to calculate two arithmetic progressions?
作为c++ 2d直方图类的一部分,我必须计算x和y值的bin向量。我是这样做的;
double xInc = (xMax - xMin)/xBins;
double yInc = (yMax - yMin)/yBins;
for(int i = 0; i<(xBins+1); i++){ m_xVals[i] = xMin + i*xInc; }
for(int i = 0; i<(yBins+1); i++){ m_yVals[i] = yMin + i*yInc; }
我在algorithms
中错过了一些可以更简洁地做到这一点的东西吗?或者,有没有一种方法可以把它变成一个循环,而不会被控制语句超越?
嗯,如果您觉得必须这样做,您可以使std::iota
投入使用(实例):
class FloatingIota {
public:
FloatingIota(double start, double inc)
: start_(start), inc_(inc), n_(0) {}
FloatingIota& operator++() { ++n_; return *this; }
operator double() const { return start_ + n_ * inc_; }
private:
double start_;
double inc_;
int n_;
};
std::iota(m_xVals, m_xVals + (xBins+1), FloatingIota(xMin, xInc));
std::iota(y_xVals, m_yVals + (yBins+1), FloatingIota(yMin, yInc));
我把它留给你来决定在什么程度上这是"更简洁",因为这是旁观者的眼睛
相关文章:
- C++:将控制台输出存储在宏中更好吗
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 初始化具有非默认构造函数的std::数组项的更好方法
- 有没有比在库中添加一个并非由所有派生类实现的新虚拟函数更好的设计实践
- 为什么新的随机库比std::rand()更好
- 寻找一种更好的方法来表示无符号字符数组
- 哪种方法更好,性能明智
- 什么更好?返回对象指针列表?或返回指向对象列表的指针?
- 什么是更好的做法?通过指针或标识符传递类成员?
- 寻求更好地理解标准::访问
- 线程消息传递或更好:在"大师班"中访问其他班级的成员
- 有没有更好的方法来处理异常? try-catch块真的很丑
- 如何更好地检查两个 char 变量是否在一组值中?
- 有没有更好的方法对C++中的三个整数进行排序?
- 什么模板用法在阶乘中更好
- 平面缓冲区可以利用向量中的 0 吗?还是其他小波比哈尔变换更好?
- 我们应该如何使用枚举类进行索引(或者我们应该更好地避免这种情况)?
- Protobuf中重复字段的问题.使用重复字段进行序列化/反序列化的更好方法是什么?
- 比使用 s.str().c_str() 更好的表达?
- 计算两个等差数列的更好方法