在C++中,有没有办法在向量的每个元素上调用一个函数,而不使用遍历所有向量元素的循环?类似于Python中的'map'的东西.
请建议一个现成的工具,用于将C++代码解析为抽象语法树?基于Lex/Yacc的工具将是首选,但其他任何东西也是可以接受的.
假设有一个类对象的向量.
vector<Object1> vec;
Run Code Online (Sandbox Code Playgroud)
说,Object1有一个成员函数void foo(Object2*).
我想做以下事情:
for(int i=0; i<vec.size(); i++) {
vec[i].foo(obj2);
}
Run Code Online (Sandbox Code Playgroud)
如何在不使用显式循环的情况下完成此操作?
请突出显示以下函数声明之间的区别:
void (*p) (void *a[], int n)
void *(*p[]) (void *a, int n)
问题更新:
我想在C++中执行以下操作:
struct Param {
public:
int len;
int in1;
float in2;
};
Param params;
class Element {
private:
int value1;
float value2;
public:
Element();
Element(int n) {value1 = n; value2 = 0;}
Element(int n1, float n2) {value1 = n1; value2 = n2;}
}
class Parent {
private:
class Element elem;
vector<Element> elemVec;
public:
Parent();
Parent(int n);
}
Run Code Online (Sandbox Code Playgroud)
我希望写下面的构造,使得在调用Parent构造函数,类元素的非默认的构造函数elem和elemVec也被调用.我已经发现elem需要调用的构造函数如下:
Parent::Parent(int n) : elem(n) {
}
Run Code Online (Sandbox Code Playgroud)
我现在该如何构建中的每个元素elemVec向量,从而Element(int, float)构造函数被调用每个向量元素与int …