gpt4 book ai didi

c++ - Foreach 在 C++ 中的实现,穷人的方法

转载 作者:可可西里 更新时间:2023-11-01 18:21:59 27 4
gpt4 key购买 nike

有快乐的人使用 boost 和 Qt。在我当前的“嵌入式”项目中,我必须使用自制的容器类。好了,提示够多了。

我试过像这样实现一个简单且独立的 foreach:

#define ForEachString(S,C) TString S;\
for ( int i=0; i<C.GetSize() && (!!(&(S=C[i]))); ++i )

它遍历具有 op[] 和 GetSize() 方法的字符串列表。例如:

TStringList tables;
ForEachString( table, tables )
{
//do sth. with tab.
}

当然,丑陋的是,每个容器类型都需要自己的宏。因此我的问题是:是否有可能使其独立于容器并且仍然自包含(所有必需的东西宏定义中)?

问候,瓦伦丁

最佳答案

也许你可以对类型 T 进行参数化:

#define ForEach(T,S,C) T S;\ 
for ( int i=0; i<C.GetSize() && (!!(&(S=C[i]))); ++i )

TStringList tables;
ForEach( TString, table, tables )
{
//do sth. with tab.
}

关于c++ - Foreach 在 C++ 中的实现,穷人的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4339589/

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