gpt4 book ai didi

c++ - 迭代一个类中的不同集合类型

转载 作者:行者123 更新时间:2023-11-28 07:21:50 27 4
gpt4 key购买 nike

class MyClass {
std::vector<int> vi;
std::vector<string> vs;
}

我想用一个迭代器遍历 MyClass 中的所有集合,即遍历所有 vi,然后遍历所有 vs. vsvi 没有 1:1 的关系(所以我不能使用基于元组的迭代方法)。这是我遇到的一道编程题。

迭代器设计模式适用于相同类型的集合,从内部表示中抽象出访问。它的接口(interface)对于模拟这个问题很有用,但集合之间的类型差异让我很为难。

我喜欢从使用的角度来解决问题。

MyClass mc; 
... // push elements into mc
for( MyClassIterator it = mc.begin();
it != mc.end();
it++)
{
// *it can be either an int or a string
// operator * for the iterator cannot return a common type! :(
}

由于集合中的不同类型(示例中的 int、string),我什至不确定如何考虑 MyClassIterator 的设计。

编辑:澄清一下,这是我遇到的一个编程问题。我想不出任何明智/优雅的东西,因此我在这里问。

最佳答案

你可以让你的迭代器的值类型变成像Boost Variant这样的变体.

关于c++ - 迭代一个类中的不同集合类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19343432/

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