delphi - 在C++ Builder中是否有“字符串列表中的字符串用于字符串”的等效项?

标签 delphi c++builder

我想知道是否有Delphi的等效项

var 
   StringList: TStringList;
for str in StringList do 


在C ++ Builder中。

最佳答案

根据Embarcadero的DocWiki:

C++ Iterator Support for Delphi Enumerable Types and Containers


以下是可用作类型的迭代器的经验法则。


如果类型仅具有GetEnumerator()方法,则可以使用Range-for和一组有限的只读STL算法。
如果类型的下标为operator[],则可以使用Range-for和所有只读STL算法。
...


...

TRandomIterator::<T,E>

为每个实现整数下标运算符TRandomIterator::<T,E>和整数E operator[ ](int)属性的RTL容器定义Count
...

TEnumerableIterator<T>

为每个实现TEnumerableIterator::<T>方法的Delphi RTL容器定义了GetEnumerator()。返回的Enumerator Type还必须支持GetCurrent()MoveNext()方法。 RTL代码中经常使用此模式,因此它涵盖了很大一部分容器。
...


TStringList满足GetEnumerator()operator[]的要求,因此,至少在CLang-based compilers中,您可以执行以下操作:

TStringList *StringList = ...;

for (auto str : StringList)
{
    ...
}

std::for_each(std::begin(StringList), std::end(StringList), ...);


此功能已在C ++ Builder 10.1 Berlin中添加。

有关更多详细信息,请参见Using Delphi containers from C++

关于delphi - 在C++ Builder中是否有“字符串列表中的字符串用于字符串”的等效项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54400447/

相关文章:

delphi - 为什么这个 LEA 指令不能编译?

c++ - 如何将 PNG 文件加载到我的自定义组件中?无法获得正确的实例

delphi - AnimateWindow幻灯片

mysql - 使用 C++ Builder 在 Windows 上编译 MySQL

C++Builder 2007, union 和位字段

delphi - 如何在 Delphi 中使用 Indy 10 和 OpenSSL 通过 HTTPS 下载/上传文件?

delphi - 无效的 ImageList 索引错误 [Delphi]

delphi - Delphi 中有哪些存储配置数据的选项?

delphi - 可写本地常量

c++ - 从 Visual C++ 移植到 Borland C++ Builder 的 ActiveX 代码