首页 > 解决方案 > const char* 常量数组

问题描述

我有一个问题,我怎样才能用更多的项目更新一个数组,这里让我告诉你我的意思。

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

Foo = Bar;

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

标签: c++arrays

解决方案


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

  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());

推荐阅读