簡體   English   中英

C字符串作為鏈表?

[英]C-string as linked list?

在c字符串中,我們需要分配合理的內存大小。 為了避免在字符串操作中重新分配,我們可以在C#或Java中使用諸如Stringbuilder之類的東西,或者在C中使用-僅為字符串分配更多的內存。 但是,如果我們事先不知道內存需求,那仍然可能是個問題。 我們是否有一些實現,例如鏈表? 我的意思是分配內存塊列表和方法c_str() ,該方法從其節點創建c字符串

liststring a(4); // requested block size
a.append("hello ");
a.append("world");
// should create three nodes, 4 bytes allocated for each
// "hell" -> "o wo" -> "rld"
a.c_str(); // "hello world";

還是要避免重新分配,我們是否使用另一種方法? 請解釋一下是否是個壞主意。

有關將字符串保留為樹的數據結構,請參見“ 繩索 ”上的文章。 這與您的想法類似。

沒有標准方法可以做到這一點。 但是您可以實現自己的字符鏈接列表並轉換為C字符串。

我假設您的意思是C ++ ,而不是C。

C ++中用於字符串操作的標准類是std :: string

Java.NET中的字符串類是不可變的。 另一方面, std :: string是可變的,因此其行為與StringBuilder完全一樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM