c++ - const char* 常量数组
问题描述
我有一个问题,我怎样才能用更多的项目更新一个数组,这里让我告诉你我的意思。
const char* const Foo[] = {"Foo", "Bar"};
const char* const Bar[] = {"Bar", "Foo", "Foo Bar"};
Foo = Bar;
基本上将“Foo”更新为“Bar”;我怎么能尝试这个?
解决方案
你不能,至少那样。有两个原因,
- 您不能将一个数组分配给 C++ 中的另一个数组。
- 我通过基本上将“Foo”更新为“Bar”来理解;你想添加
{"Bar", "Foo", "Foo Bar"}
到{"Foo", "Bar"}
.Foo
如果是这样,则您的阵列中没有容量。
你在这里需要的是std::vector
. 这是一个可动态调整大小的数组。
#include <vector> // For std::vector
#include <string> // For std::string
std::vector<std::string> foo = { "Foo", "Bar" };
std::vector<std::string> bar = { "Bar", "Foo", "Foo Bar" };
但是您仍然不能只使用赋值 ( =
) 运算符将元素从一个数组附加到另一个数组。你必须插入它。
foo.insert(foo.end(), bar.begin(), bar.end());
推荐阅读
- python - 我正在尝试在 python 中创建密码系统。我不知道这有什么问题
- angular - 从外部前端发布到私有云运行
- yocto - Yocto——STM32H743 的 BSP
- kubernetes-helm - 如何理解和解决舵图错误?
- swift - 如何将一组skspritenodes一起移动
- powershell - LastUsed is sometimes blank or $null
- javascript - 在 Electron 应用程序中缓存 API 调用的结果
- google-cloud-platform - GCP 数据流传递列表作为参数
- java - JPA 投影获取结果但未将列与界面视图中的方法匹配
- excel - 使用 VBA 打开 Word Doc 会导致空变量