【发布时间】:2019-04-24 09:40:55
【问题描述】:
我想编写自己的 String 类,它的接口类似于 std::string。字符串类不应使用动态内存分配。
我需要一个c-tor:
String(char* ptrToFirstCharInTab, char* ptrToLastElementInTab);
并且应该有包含不同(不知道)元素数量的选项卡,所以我在编译时不知道大小。
在我看来这是不可能的,因为如果我们在编译之前不知道数组的大小,我们就无法在没有动态分配的情况下创建它 - 当然为 500 char 创建缓冲区,然后 String 类只能是 500 这不是我的期望.
你有什么想法吗?也许有什么方法可以创建我会缩小以适应的缓冲区吗?感谢您的帮助!
【问题讨论】:
-
您的问题或多或少类似于“是否可以在不使用 C++ 内存的情况下创建类 String?”
-
@RobertHarvey,你的意思是“不使用动态内存”吗?
-
@RSahu 你为什么要这样做?
-
除非您有某种限制,否则无法避免动态分配。您是否有理由要避免动态分配?另外,你可能想看看小字符串优化
-
我相信你是对的。动态大小 = 动态分配。
标签: c++ class memory-management stack static-allocation