首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >初始化具有动态长度的向量

初始化具有动态长度的向量
EN

Stack Overflow用户
提问于 2011-05-16 13:36:55
回答 4查看 2K关注 0票数 0

您能告诉我如何将buf矢量的大小更改为动态长度吗?

代码语言:javascript
复制
long five = 555;
char buf[256];
snprintf(buf, sizeof(buf), "%d", five); 

太棒了!

如何用std::vector<std::string>buf;更改我的代码以便正确工作?

我有错误:

载体不是性病的成员;

在此作用域和错误中未声明buf:">“令牌之前的预期主表达式。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-16 13:38:37

在C++中,您不能这样做,您将不得不以某种方式动态地分配它,或者更好地使用动态数据结构,比如std::vector。

票数 8
EN

Stack Overflow用户

发布于 2011-05-16 14:38:15

尝试:

代码语言:javascript
复制
#include <vector>
#include <string>

long five = 555;

// using vector
std::vector<char> buf1(256);
snprintf(&buf1[0], buf1.size(), "%d", five);

// Or using string 
std::string       buf2(256);
snprintf(&buf2[0], buf2.size(), "%d", five);

不过,我不使用snprintf(),而是查找如何使用字符串。

票数 2
EN

Stack Overflow用户

发布于 2011-05-16 13:48:52

如果您真的反对使用向量类,您可以自己实现动态内存。创建一个函数,以便在内存不足时添加到数组中,以存储新值。它将使用malloc新内存,复制内容,追加新值,删除旧内存,然后返回指向新数组的指针。它们的数量将取决于您的应用程序将使用的新内存。只有足够的内存来存储新的值来保存内存,或者比旧的大小更多(如双倍),这样您就不必经常调用这个函数了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6018254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档