“二进制'[':找不到运算符

大黄蜂07

我有两个字符串向量:

std::vector<std::string> savestring{"1", "3", "2", "4"}; // some numbers
std::vector<std::string> save2{"a", "b", "c", "d"};      // some names

我希望根据前者对后者进行重新排序,以便最终成为{"a", "c", "b", "d"}我尝试了这个:

for (int i=0; i<savestring.size(); i++)
{
    savestring[i] = save2[savestring[i]];
}

但是我得到了错误:

“二进制'[':未找到采用'std :: basic_string <_Elem,_Traits,_Alloc>'类型的右侧操作数的运算符(或没有可接受的转换)”

这是什么意思,我的代码有什么问题?

安莫尔·辛格·贾吉(Anmol Singh Jaggi)

问题是这savestring[i]是a,std::string而中的方括号内应该有一个整数save2[]因此,解决方案是首先std::string通过编写自定义函数将其转换为整数。

因此,将其更改为:

// Converts a std::string to an int
int ToInt( const std::string& obj )
{
    std::stringstream ss;
    ss << obj;

    int ret;
    ss >> ret;

    return ret;
}


for(int i=0;i<savestring.size();i++)
{
    savestring[i]=save2[ToInt(savestring[i])];
}

不要忘记在顶部sstream#include <sstream>标题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

“二进制'[':找不到运算符

来自分类Dev

Visual Studio 2015:错误C2679二进制'>>':找不到运算符

来自分类Dev

错误C2679:二进制'=':找不到运算符或没有可接受的转换

来自分类Dev

Python中二进制数的二进制运算符

来自分类Dev

错误C2679:二进制'<<':找不到运算符,该运算符采用类型为'std :: string'的右侧操作数

来自分类Dev

为二进制树重载++运算符

来自分类Dev

-bash:[:@:预期为二进制运算符

来自分类Dev

二进制运算符的非数字参数

来自分类Dev

无效的二进制运算符

来自分类Dev

二进制运算符或在TSQL中?

来自分类Dev

Bash二进制运算符的用法

来自分类Dev

+二进制类型的运算符

来自分类Dev

利用二进制运算符登录变量

来自分类Dev

-bash:[:@:预期为二进制运算符

来自分类Dev

在二进制运算符周围插入空格

来自分类Dev

二进制运算符或在TSQL中?

来自分类Dev

获取二进制%运算符迭代次数

来自分类Dev

二进制NOT(〜)运算符如何工作?

来自分类Dev

逻辑二进制中缀运算符出错

来自分类Dev

仅针对二进制运算符防止隐式转换运算符

来自分类Dev

在二进制文件中找不到二进制文本

来自分类Dev

使用^运算符将Ints转换为二进制/十六进制

来自分类Dev

执行二进制文件:找不到文件

来自分类Dev

在路径中找不到二进制文件

来自分类Dev

找不到工具链二进制文件

来自分类Dev

找不到工具链二进制文件

来自分类Dev

找不到jar二进制文件

来自分类Dev

对unichar和String使用二进制运算符

来自分类Dev

使用二进制运算符python时调用的函数