C++builder中,关于存取字符串的问题

来源:百度知道 编辑:UC知道 时间:2024/05/29 07:05:16
我需要建立一个三维的字符串存储容器,但是TStrings*只能满足二维字符串容器的效果,于是我想到了将TStrings* Msg的实例Msg中的所有字符串取出Msg->Text,存入到另一个二维的字符链表中,谁能给我提供一个这样的二维字符链表。谢谢!
目前,我已经试过用TStrings*套TStrings*存储,但是发现不成功,存储后还是二维的。TList我也试过,但是它只能存储指针,一旦指针的内容改变或者消失,它就失效了。
请问有没有现有的字符串链表库,有基本的链表功能,存储的是实际的字符串可以满足我的要求?
(字数超过了1000,前面部分删除了)
//-----------------------------------------
typedef struct vector<AnsiString> STRVC;
这句有问题,编译不通过。
报错为:
[C++ Error] Unit1.cpp(14): E2426 Explicit specialization of 'vector<AnsiString,allocator<AnsiString> >' requires 'template<>' declaration

TList套TStrings*不可以么?
存储的是指针,只要留意指针的有效性。
请问你的TStrings*本身不是指针么?它什么时候被delete难道你不知道?

注意你的叙述“一旦该指针被销毁”,销毁的是指针指向的内容,指针还是存在的。
TList存的指针,如果指向的内容是new出来的,在你delete之前,是永远存在的。
这样做只是TList的擅后清楚工作比较大

但是就算你自己做一个链表或者用stl的链表或者其他等等,当要释放时,你不是照样要delete 每个TStrings*指针么,难道你的TStrings*不是new出来的?

//================
"你还是没明白我的意思,TStrings*是new出来的,但是只是个临时指针,我需要的效果就是先用TStrings*去取一段数据,然后将该数据存入链表中,然后再用该TStrings*去取一段数据,再存入链表。"
你不会再new一个TStrings,然后再用该TStrings*去取一段数据,再存入链表???

//=====
一样的,指针new出来的,也就是保存串,然后保存
指针。你总得有变量保存串把。反而用指针比较节省,因为传参值传递比较快

如果你非要用变量的话我也可以给你写个例子
//==
我没有说用tstring*套Tstring

//===
用stl写了个,新建工程,然后添加2个button,一个memo。
分别双击2个button(一定要双击出现函数后再添加哦),在里面添加代码,整页代码如下:
//---------------------------------------------------------------------------

#include <vcl.h>
#include <vector>
#include <list>
using namespace std;
#pragma hdrsto