代码之家  ›  专栏  ›  技术社区  ›  Ashwin Nanjappa

C++Booost:与BooStY-FACHACH有什么区别吗?

  •  22
  • Ashwin Nanjappa  · 技术社区  · 15 年前

    这是给助推专家的。有没有任何程序或细节,程序员需要知道之前,他进入,并取代所有旧的C/C++风格循环与精益和平均看 BOOST_FOREACH ?

    (这个问题的一部分来源于 here )

    5 回复  |  直到 15 年前
        1
  •  10
  •   dirkgently    15 年前

    看一看:

        2
  •  9
  •   bayda    15 年前

    Boost-ForEach-宏,我不喜欢宏,更喜欢使用STL算法+lambda+bind。

    阿尔索 C++0x 将包含 for-loop 类似于Boost-ForEach:

    int my_array[5] = {1, 2, 3, 4, 5};
    for(int &x : my_array)
    {
      x *= 2;
    }
    

    这是一个额外的原因,不使用特别的死助推器。

        3
  •  8
  •   tstenner    15 年前

    因为它只是一个宏,所以不能在字体名中使用逗号,所以
    BOOST_FOREACH(pair<int,int> A, mapB){}
    不起作用。
    对于其他缺点,我会咨询 BOOST_FOREACH() documentation .

        4
  •  7
  •   rlbond    15 年前

    I型 BOOST_FOREACH 而不是手工编码的循环。 助推器前缘 在一个简单的循环中大约慢了30%,这个循环增加了100000个向量的元素。 所以,如果你在编码一个小循环,它就不会那么快了。一旦你的循环做了主要的处理,Amdahl定律就开始了,并且由于 助推器前缘 可以忽略不计。

        5
  •  4
  •   anon    15 年前

    看看boost-foreach宏的来源(在foreach.hpp中)-这不是我所说的“lean and mean”:-)