【发布时间】:2020-09-29 11:44:22
【问题描述】:
我正在尝试将 字符串文字 附加到 std::vector<char*> 但无论我尝试什么都无法附加它们。
std::vector<char*> vector1;
vector1.push_back("examplestring"); // gives warning C++11 does not allow conversion form string literal..
const char* anotherstring = "examplestring";
vector1.push_back(anotherstring); // gives error no matchcing member to call push_back
有人可以用正确的方式来纠正我在向量中添加字符串的方法吗? 提前致谢。
【问题讨论】:
-
为什么你首先有一个
std::vector<char*>?为什么不是std::vector<std::string>? -
你的向量有
char *s。在 C++ 中,不能将const char *分配给char *,也不能将const char *s 添加到向量中。这就是 C++ 的工作原理。 -
@user123445151156:我敢问你为什么会故意在新代码中使用已弃用的安全相关函数?!?
-
@user123445151156 您可以存储
std::vector<std::string> vector1并将元素作为vector1[i].data()传递给外部函数。 -
@user123445151156 函数对传递给它的字符串有什么作用?正确的方法实际上取决于该问题的答案。