语法结构 C{int x;} 是什么意思无孔;C++ 中的平均值 [重复]

What does the syntax struct C{int x;}var; mean in C++ [duplicate]

提问人:ashamat 提问时间:8/11/2022 最后编辑:user12002570ashamat 更新时间:8/11/2022 访问量:95

问:

我正在查看有关 std::for_each 的文档。(https://cplusplus.com/reference/algorithm/for_each/)

我无法理解他们使用 的方式,因为他们没有声明要传递给的变量。 这是代码:struct myclassmainfor_each

#include <iostream>     // std::cout
#include <algorithm>    // std::for_each
#include <vector>       // std::vector

struct myclass {           // function object type:
  void operator() (int i) {std::cout << ' ' << i;}
} myobject;

int main () {
  std::vector<int> myvector;
  myvector.push_back(10);
  myvector.push_back(20);
  myvector.push_back(30);

  std::cout << "myvector contains:";
  for_each (myvector.begin(), myvector.end(), myobject);
  std::cout << '\n';

  return 0;
}

我的直觉是

struct myclass {           // function object type:
  void operator() (int i) {std::cout << ' ' << i;}
} myobject;

等于:

struct myclass {           // function object type:
  void operator() (int i) {std::cout << ' ' << i;}
};
myclass myobject;

因此,他们声明变量(作为全局变量)并在同一语句中定义结构。这是对的吗?

C++ C++11 结构 标准

评论

0赞 user12002570 8/11/2022
参考如何询问“搜索然后研究”的第一步在哪里,你会发现很多与 SO 相关的帖子。
1赞 Some programmer dude 8/11/2022
实际上是在定义变量。除此之外,你的“直觉”是正确的。myclass myobject;myobject
0赞 user12002570 8/11/2022
@ashamat 好的,我为你的问题添加了一些重复。看看它们,你就会发现其中的含义。例如,右括号后面的名称是什么意思?
0赞 ashamat 8/11/2022
@JasonLiam 你发布的问题回答了我的问题,我没有罚款他们,可能是因为它们是关于而不是直接关于.即使他们中的一些人随后在答案中也澄清了这一点。@Someprogrammerdude感谢您指出这个错误classstructstruct
1赞 BoP 8/11/2022
@ashamat - 从本质上讲,和 之间的区别在于您不必在结构的开头键入。因此,有些人更喜欢在一切都是公开的时使用结构体,就像这里一样。否则,它们的工作方式相同。classstructpublic:

答: 暂无答案