当前位置: 首页 > 知识库问答 >
问题:

尝试在vector C++中过滤元素,但不断得到错误[duplicate]

余铭晨
2023-03-14

我试着根据它们所拥有的,过滤一个2个向量的字符串。我的意思是我的向量fvalues包含[“01”,“11”,“10”]和另一个向量xbarl,该向量是使用get_combs()函数递归创建的,以生成基于数字=2的二进制数[“00”,“01”,“11”,“10”]。我想对这两个值进行排序,并将xbarl中的值(不在fvalues中)排序为另一个向量字符串。因此,使用上面的示例,我希望第三个向量包含[“00”],它应该是一个字符串。

这是我的代码,但在最后一个for循环中,我实际上执行了过滤,它给了我一个错误

#include <iostream>
#include <bitset>
#include <vector>

std::vector<std::string> get_combs(int width)
{
    if (width == 1)
    {
        return {"0", "1"};
    }
    std::vector<std::string> rest = get_combs(width-1);
    std::vector<std::string> appended;
    for (const auto& s: rest)
    {
        appended.push_back(s + '0');
        appended.push_back(s + '1');
    }
    return appended;
}

int main(){

  std::vector<std::string> fvalues;

  std::string row;

  row = "01";
  fvalues.push_back(row);
  row = "11";
  fvalues.push_back(row);
  row = "10";
  fvalues.push_back(row);
  // fvalues now contains ["01","11","10"]

  std::vector<std::string> xbarl;
  xbarl = get_combs(2);

  
  for(int i=0;i<xbarl.size();i++){
    if( xbarl[i] in  fvalues ){  <-- error

  }

}

错误说

no viable conversion from
      '__gnu_cxx::__alloc_traits<std::allocator<std::__cxx11::basic_string<char,
      std::char_traits<char>, std::allocator<char> > >,
      std::__cxx11::basic_string<char, std::char_traits<char>,
      std::allocator<char> > >::value_type' (aka
      'std::__cxx11::basic_string<char, std::char_traits<char>,
      std::allocator<char> >') to 'bool'
    if( xbarl[i] in  fvalues ){
        ^~~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/basic_string.h:816:7: note: 
      candidate function
      operator __sv_type() const noexcept
      ^
1 error generated.
compiler exit status 1

我不知道该怎么办,有人能帮帮我吗?

共有1个答案

慎懿轩
2023-03-14

C++没有in运算符。编译器不能识别它,但它也不知道它在那里,所以它给出了一些其他的随机错误。

 类似资料:
  • > 我尝试使用react添加Seach过滤器,并使用json数据将其与搜索词匹配 以下是我的代码 常量应用 = () = 使用效果(()= }, []); 返回 ( );}; 当我试图执行时,我得到了下面的错误,有人能解释为什么会发生这种情况吗

  • 错误:在类com.complete.reference.shift中找不到Main方法,请将Main方法定义为:public static void Main(String[]args)或JavaFX应用程序类必须扩展JavaFX.application.application

  • 我正在使用&试图更新文档中对象数组中的。 文档集合的架构如下: 我想要的是: 目前,我正在使用db.eval从node运行这个脚本,但是一旦我完成了同样的任务,稍后将对其进行更改。 获取此错误: {“name”:“mongoerror”,“message”:“error:command failed:{\n\t\”ok“:0,\n\t\”errmsg\“:\”管道元素3不是对象\“,\n\t\”c

  • 问题内容: 我有以下XPath: 当我在XPath Checker(Firefox扩展)中试用此XPath时,它一直都能完美运行。但是当我在Selenium中执行以下操作时: 它不断给我以下日志错误: 我为解决这个问题而疯狂。有人看到我的代码行有任何错误吗? 问题答案: 该查询字符串不应该像这样(根据javadoc api)吗?

  • 问题内容: 我只能在Chrome浏览器中看到。 完整的错误消息显示为: “ org.openqa.selenium.WebDriverException:元素在点(411,675)不可点击。其他元素将获得点击:…” “将获得点击”的元素位于相关元素的侧面,而不是在其顶部且不重叠,也不在页面上移动。 我曾尝试添加偏移量,但这也不起作用。该项目位于显示的窗口中,无需滚动。 问题答案: 这是由以下3种类

  • “将接收点击”的元素位于所讨论的元素的旁边,而不是在其顶部,也不是与之重叠,也不是在页面中移动。 我试过添加一个偏移量,但那也不起作用。该项目在显示的窗口上,不需要滚动。