gpt4 book ai didi

c++ - C++ 函数返回迭代器

转载 作者:可可西里 更新时间:2023-11-01 15:35:55 26 4
gpt4 key购买 nike

下面是一个返回迭代器的Java方法

vector<string> types;

// some code here

Iterator Union::types()
{
return types.iterator();
}

我想将这段代码翻译成 C++。我如何从此方法返回 vector 的迭代器?

最佳答案

这将返回一个指向 types 开头的迭代器:

std::vector<string>::iterator Union::types() 
{
return types.begin();
}

但是,调用者还需要知道 vector 类型end()。Java 的 Iterator 有一个方法 hasNext():这在 C++ 中不存在。

您可以更改 Union::types() 以返回一个范围:

std::pair<std::vector<std::string>::iterator, 
std::vector<std::string>::iterator> Union::types()
{
return std::make_pair(types.begin(), types.end());
}

std::pair<std::vector<std::string>::iterator,
std::vector<std::string>::iterator> p = Union::types();

for (; p.first != p.second; p.first++)
{
}

关于c++ - C++ 函数返回迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8822576/

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