Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C+中使用类似lambda的语法搜索结构列表+; struct数据 { int-Id; 向量数据 } 标准::矢量数据列表=。。。。 int-wantedIndex=11; std::find(dataList.begin(),dataList.end(),“where dataList.Id==wantedIndex”) 这种Visual Studio 2008中的标准C++中的语法是否可能? < P> C++ 11附带LAMBDAS: struct Data { int Id; std::vector<int> SomeData } std::vector<Data> dataList = .... int wantedIndex = 11; std::find(dataList.begin(), dataList.end(), "where dataList.Id == wantedIndex")_C++_Search_Lambda - Fatal编程技术网

在C+中使用类似lambda的语法搜索结构列表+; struct数据 { int-Id; 向量数据 } 标准::矢量数据列表=。。。。 int-wantedIndex=11; std::find(dataList.begin(),dataList.end(),“where dataList.Id==wantedIndex”) 这种Visual Studio 2008中的标准C++中的语法是否可能? < P> C++ 11附带LAMBDAS: struct Data { int Id; std::vector<int> SomeData } std::vector<Data> dataList = .... int wantedIndex = 11; std::find(dataList.begin(), dataList.end(), "where dataList.Id == wantedIndex")

在C+中使用类似lambda的语法搜索结构列表+; struct数据 { int-Id; 向量数据 } 标准::矢量数据列表=。。。。 int-wantedIndex=11; std::find(dataList.begin(),dataList.end(),“where dataList.Id==wantedIndex”) 这种Visual Studio 2008中的标准C++中的语法是否可能? < P> C++ 11附带LAMBDAS: struct Data { int Id; std::vector<int> SomeData } std::vector<Data> dataList = .... int wantedIndex = 11; std::find(dataList.begin(), dataList.end(), "where dataList.Id == wantedIndex"),c++,search,lambda,C++,Search,Lambda,C++11附带了对lambdas的支持: struct Data { int Id; std::vector<int> SomeData } std::vector<Data> dataList = .... int wantedIndex = 11; std::find(dataList.begin(), dataList.end(), "where dataList.Id == wantedIndex") 如果你有VisualStudio2008,那么我想你不能

C++11附带了对lambdas的支持:

struct Data
{
int Id;
std::vector<int> SomeData
}

std::vector<Data> dataList = ....

int wantedIndex = 11;
std::find(dataList.begin(), dataList.end(), "where dataList.Id == wantedIndex")

如果你有VisualStudio2008,那么我想你不能使用lambda函数 正确的方法如下:

std::find_if(dataList.begin(), dataList.end(), 
             [&wantedIndex](const Data& x) { return x.Id == wantedIndex;});

如果你有VisualStudio2008,那么我想你不能使用lambda函数 正确的方法如下:

std::find_if(dataList.begin(), dataList.end(), 
             [&wantedIndex](const Data& x) { return x.Id == wantedIndex;});

如果你不能使用C++11。也许你可以用boost

是这样的:

bool find_fun1(int i, int wanted_index)
{
  return i == wanted_index
}
int wanted_index = 11;
std::find_if(dataList.begin(), dataList.end(), std::bind(find_fun1,_1,wanted_index));

如果你不能使用C++11。也许你可以用boost

是这样的:

bool find_fun1(int i, int wanted_index)
{
  return i == wanted_index
}
int wanted_index = 11;
std::find_if(dataList.begin(), dataList.end(), std::bind(find_fun1,_1,wanted_index));


我忘了提到,但我一直在使用visual studio 2008,虽然这不是问题的最佳答案,但它确实很好地回答了文章的标题,因此如果有人搜索相同的内容,可能会很有用。@user1038502如果更适合,我可以使用boost::lamdba/phoenix和functor制作一些东西。刚才看到了需求的变化。我的项目没有boost,虽然它会很有趣,但对我没有帮助。我忘了提到,但我一直在使用visual studio 2008虽然不是这个问题的最佳答案,但它确实很好地回答了帖子的标题,因此,如果有人搜索相同的内容,可能会很有用。@user1038502如果更适合,我可以使用boost::lamdba/phoenix和一个functor来制作一些东西。刚才看到了需求的变化。我的项目没有boost,虽然它会很有趣,但它对我没有帮助。
find
采用了一个值,而不是谓词。如果我认为是,正如这里提到的,我删除了我的评论,对不起,如果VS 2008中有可用的
find\u,您是正确的。
find
接受一个值而不是谓词。如果我认为是,我打算写find\u,正如我在这里提到的,我删除了我的评论,对不起,如果VS 2008中有可用的
find\u,您是正确的。您可以使用
映射从id到向量吗?另外,需要注意的是,数据和数据列表都是可怕的名称。您可以使用从id到向量的
映射吗?另外,需要注意的是,数据和数据列表都是可怕的名称。