我有一个搜索迭代器向量的函数,如果迭代器的名称与作为参数传递的字符串匹配,则返回迭代器。
koalaGraph::PVertex lookUpByName(std::string Name, std::vector<koalaGraph::PVertex>& Vertices) {
for (size_t i = 0; i < Vertices.size(); i++) {
if(Vertices[i]->info.name == Name)
return Vertices[i];
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我如何将其实现为lambda,以将其与结合使用std::find_if?
我正在尝试:
std::vector<koalaGraph::PVertex> V;
std::string Name;
std::find_if(V.begin(), V.end(), [&Name]() {return Name == V->info.name;})
Run Code Online (Sandbox Code Playgroud)
但是它说 V
除非在捕获列表中,否则不能在lambda主体中引用封闭函数局部变量。
我有一个搜索向量的函数,如果找到该项目,则将其返回。但我想知道最好的软件方法来处理(如果找不到)。
我创建了一个函数,可以返回-1或类似的东西,但返回类型不匹配。
koalaGraph::PVertex Koala::lookUpVertexbyName(const std::string&vertexName, const std::vector<koalaGraph::PVertex>& koalaVertices) {
for (size_t i = 0; i < koalaVertices.size(); i++) {
if(koalaVertices[i]->info.name == vertexName)
return koalaVertices[i];
}
}
Run Code Online (Sandbox Code Playgroud)
如果遇到要搜索的项目不在矢量中的情况,则程序将退出。
我正在尝试了解张量流中的量化,并且正在遵循本教程。
\n\n\n\n在教程中它说,量化方程是:
\n\n\n\n我正在努力理解零点的含义,希望有人能用一个例子来解释它?
\n下面的代码将数据从一个向量复制到另一个向量。如果向量很大,那么我猜这很昂贵。是否可以在此处使用移动语义将数据从一个向量复制到另一个向量?
std::vector<double> newData(Shape.Size(), 0);
std::vector<double> oldData = a->getData();
std::copy(oldData.begin(), oldData.end(), newData.begin());
Run Code Online (Sandbox Code Playgroud) 我了解如果我的类具有智能的唯一指针,则无法将该类分配给另一个实例,因为不能复制唯一指针。我知道我可以使唯一指针成为共享指针,这样就可以解决问题。但是,如果我不想共享指针的所有权怎么办?是否可以创建一个赋值运算符来移动唯一指针并复制其他变量?
我读过您可以std::move用来转让所有权。
#include <iostream>
#include <memory>
struct GraphStructure { };
class test {
int a;
std::vector<int> vector;
std::unique_ptr<GraphStructure> Graph_;
};
int main () {
test t1;
auto t2 = t1;
}
Run Code Online (Sandbox Code Playgroud) 我想了解const_cast。
在下面的示例中,items_是一个私有成员变量。
方法getItems()是一种const方法,这意味着它不能修改成员变量items_。
getItems()返回一个const vector引用,这意味着您不能修改成员变量items_。
我的问题是,const_cast在这里有必要吗?我不这样认为,因为我不需要放弃常数性?
#include <iostream>
class test {
std::vector<Item> items_;
public:
const std::vector<Item>& getItems() const;
};
const std::vector<mv::Item>& mv::Workloads::getItems() const
{
return const_cast<std::vector<Item>&>(items_);
}
Run Code Online (Sandbox Code Playgroud) 有人能解释一下这段代码的作用吗?
struct EnumClass
{
template <typename T>
std::size_t operator()(T t) const
{
return static_cast<std::size_t>(t);
}
};
Run Code Online (Sandbox Code Playgroud)