您能告诉我如何将buf矢量的大小更改为动态长度吗?
long five = 555;
char buf[256];
snprintf(buf, sizeof(buf), "%d", five); 太棒了!
如何用std::vector<std::string>buf;更改我的代码以便正确工作?
我有错误:
载体不是性病的成员;
在此作用域和错误中未声明buf:">“令牌之前的预期主表达式。
发布于 2011-05-16 13:38:37
在C++中,您不能这样做,您将不得不以某种方式动态地分配它,或者更好地使用动态数据结构,比如std::vector。
发布于 2011-05-16 14:38:15
尝试:
#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(),而是查找如何使用字符串。
发布于 2011-05-16 13:48:52
如果您真的反对使用向量类,您可以自己实现动态内存。创建一个函数,以便在内存不足时添加到数组中,以存储新值。它将使用malloc新内存,复制内容,追加新值,删除旧内存,然后返回指向新数组的指针。它们的数量将取决于您的应用程序将使用的新内存。只有足够的内存来存储新的值来保存内存,或者比旧的大小更多(如双倍),这样您就不必经常调用这个函数了。
https://stackoverflow.com/questions/6018254
复制相似问题