初始化具有动态长度的向量
Initialize a vector with a dynamic length
你能告诉我如何将 buf 矢量的大小更改为动态长度吗?
long five = 555;
char buf[256];
snprintf(buf, sizeof(buf), "%d", five);
感谢!
如何使用std::vector<std::string>buf;
更改我的代码才能正常工作?
我有错误:
Vector不是STD的成员;
BUF 未在此范围内声明,并且错误:">"标记之前的预期主表达式
在C++中,你不能。你必须以某种方式动态分配它,或者最好还是使用像 std::vector 这样的动态数据结构。
尝试:
#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(),我会查找如何使用字符串流。
如果你真的反对使用矢量类,你可以自己实现动态内存。 创建一个函数,以便在没有足够的内存来存储新值时添加到数组中。 它会错误地标记新内存,复制内容,附加新值,删除旧内存,然后返回指向新数组的指针。 它们的数量将取决于您的应用程序,您将使用的新内存。(即。 刚好有足够的内存来存储新值以节省内存,或者比旧大小多得多(例如双倍),这样您就不必经常调用此函数。
您可能希望创建字符向量,而不是字符串向量。
我怀疑的第二个错误是变量名称前缺少空格字符。
相关文章:
- std::向量与传递值的动态数组
- C++ 将抽象类型的动态分配对象传递给函数并存储在向量中
- C++字符串数组的动态向量
- 是否可以使用宏来访问动态数组或向量中的元素或为其赋值
- 动态分配特征向量的模因
- 代码超出范围.如何动态分配此向量?
- 干净地破坏动态定位对象的向量
- 在存储库中,筛选器函数返回动态向量或其他存储库
- 在读取大型 txt 文件时动态分配结构内的向量
- 使用向量和气泡排序的动态内存分配
- C++ 返回具有最小硬币的数组/向量以获得价值动态规划
- C++:指针元素的向量在销毁时是否会自动释放每个指针所指向的动态内存?
- 如果类数组中的向量是动态push_backed的,内存如何工作
- GUI滑块的动态数量,该数量更新具有回调中值的std ::向量
- (C )创建可以从功能访问的动态全局数组/向量
- C++联系人处理程序与自己的动态模板向量类
- 通过引用和动态分配传递向量
- C++ 访问向量动态数组中的违规读取位置0xFFFFFFFFFFFFFFFF
- 使用嵌套向量动态分配方阵
- C++数组和向量动态项大小