看c++标准程序库的疑问
仿函数的疑问:c++标准程序库page.127-128页提到: 假设你需要对群集中的每一个元素加上一个固定值,如果你在编译期知道了这个固定数字你可以使用一般函数void add10(int & elem){elem+=10;}int main(){vector<int>coll;.......for_each(coll.begin(),coll.end(),add10);如果你需要数个不同的固定值,而它们在编译期都已知道,你可以使用:template<int theVale>void add(int& elem){elem+=theVale;}int main(){vector<int> coll;.............for_each(coll.begin(),coll.end(),add<10>); //通过末班来将固定值传进去。} 注意,作者此时加了几句话(是我不懂的地方): 如果你必须在执行期间才处理这些数值,那可就麻烦了。你必须在函数被调用之前先把这个数值传给该函数。这通常会导致产生一些全局变量。 为什么会导致产生一些全局变量啊?????模板的编译期间,和执行期间有什么区别,