const char* const 数组

时间:2021-02-22 04:49:45

标签: c++ arrays

我有一个问题,如何更新包含更多项的数组,在这里让我向您展示我的意思。

const char* const Foo[] = {"Foo", "Bar"};
const char* const Bar[] = {"Bar", "Foo", "Foo Bar"};

Foo = Bar;

基本将“Foo”更新为“Bar”;我怎么能尝试这个?

1 个答案:

答案 0 :(得分:2)

你不能,至少那样。有两个原因,

  1. 您不能在 C++ 中将一个数组分配给另一个数组。
  2. 我的理解是基本上将“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());