gpt4 book ai didi

c++ - 关于c++ vector中for_each的一个问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:05:15 25 4
gpt4 key购买 nike

我对vector中的for_each有疑问,代码如下:

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;


struct myclass {
void operator() (int i) {cout << " " << i;}
} myobject;

int main () {
vector<int> myvector(3,4);

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

cout << endl;

return 0;
}

for_each() 的第三个参数应该是一个函数名吗?如果我们传递结构的名称,这是如何工作的?

最佳答案

这是一个 functor .

std::for_each 是一个函数模板,基本上扩展为:

for (iter = myvector.begin(); iter != myvector.end(); ++iter)
{
myobject(*iter);
}

所以 myobject 可以是函数指针,也可以是重载了 operator() 的对象。

关于c++ - 关于c++ vector中for_each的一个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6547664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com