c++ - 在 TStringList 中添加对象

标签 c++ c++builder tstringlist

这是我第一次在 C++ Builder 6 的 TStringList 中使用 AddObject 方法 但例如,我无法将整数添加到对象列表中。当然我是通过类型转换不同的类型来做到的。但这不是我想要的。请帮我做的更简单 以及为什么对象列表中的对象必须是 Tobject* 这是我的简单程序...

#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#pragma hdrstop
#pragma argsused

int main(int argc, char* argv[])
{
    int r=random(100+1);
    TStringList *mylist=new TStringList;
    mylist->AddObject("r",(TObject *)r);
    int i=mylist->IndexOf("r");
    int a=(int)(mylist->Objects[i]);
    cout<<a<<endl;
    getch();
    return 0;
} 

最佳答案

使用 std::map 或其他合适的容器,例如:

#pragma hdrstop

#include <iostream.h>
#include <conio.h>
#include <map>

#pragma argsused

int main(int argc, char* argv[])
{
    int r = random(100+1);
    std::map<std::string, int> mylist;
    mylist["r"] = r;
    int a = mylist["r"];
    cout << a << std::endl;
    getch();
    return 0;
} 

关于c++ - 在 TStringList 中添加对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23928572/

相关文章:

delphi - 带有分隔符的字符串列表?

c++ - 免费类型。如何知道 FT_Face 及其索引中的符号数?

delphi - 如何跟踪仅在调试器下发生但未被调试器捕获的间歇性崩溃?

C++ Builder 删除动态数组的对象

c++ - C++ 桌面应用程序中的网页

Delphi TStringList 对名称进行自定义排序

c++ - 为什么我的消息框显示为另一种语言?

c++ - Eigen 中的稀疏矩阵和 vector 加法广播

c++ - VC++2010中使用Direct3D9和FMOD自由播放音视频

delphi - TStringList 和 TThread 不释放其所有内存