【问题标题】:Error: Cannot convert 'const value_type' to 'char'错误:无法将“const value_type”转换为“char”
【发布时间】:2018-03-21 04:56:37
【问题描述】:
firstChar = infix[i];

firstChar 是一个字符,infix 是一个字符串向量。试图将来自 vector[i] 的字符存储在 firstChar 中,但进展并不顺利。

如果您想帮助解决这些问题,还有另外两个错误。

错误:无法将“firstChar”从“char”转换为“std::__cxx11::string”

precedenceHolder = precedence(firstChar);

在这个问题上,我尝试将 firstChar 静态转换为字符串,但这只会导致很多其他错误。

错误:无法将 's.LinkedStack::peek,char.()' 从 'char' 转换为 'std::__cxx11::string'

while (!s.isEmpty() && s.peek() != '(' && precedenceHolder <= precedence(s.peek()))

感谢您的帮助。我期待着轰炸这个项目。

编辑:变量名如下

LinkedStack<char> s;
int i = 0;
int k = 0;
char firstChar;
vector<string> postFix;
int precedenceHolder;

【问题讨论】:

  • 没有字符串向量这样的东西,可能你的意思是字符串向量。请提供代码中出现的变量类型以避免歧义和混淆。
  • 好的,我添加了它们

标签: c++ vector


【解决方案1】:

在命令中

firstChar = infix[i];

firstCharchar 类型,而 infix[i] 是第 i 个 string。您不能将string 分配给char,但您可以从string 中检索第一个char

firstChar = infix[i][0];

【讨论】:

  • 我不太明白它是如何工作的,但它解决了一个问题,哈哈,谢谢
  • @Sam:有什么不明白的? infixstd::vectorstd::string 元素。 std::vector 有一个 operator[] 来访问数组中的特定元素。 std::string 有自己的 operator[] 来访问字符串中的特定字符。 firstChar = infix[i][0] 等价于这样做:string &amp;s = infix[i]; firstChar = s[0];(实际上它在做的是这样的:firstChar = infix.operator[](i).operator[](0);
  • @Remy Lebeau 我只是不知道你能做到infix[i][0],也不知道它是如何工作的。
猜你喜欢
  • 2020-01-23
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-20
  • 1970-01-01
  • 2020-07-14
相关资源
最近更新 更多