小编Raf*_*fal的帖子

C++ 使用移动语义将参数传递给另一个函数

我有一个需要 2 个参数的函数,但其​​中一个(地图容器)被传递给另一个函数:

void myFunc(const std::map<std::string, int> &myMap, int num) {
    int x = internalFunc(myMap);
    // do some stuff...
}

int internalFunc(const std::map<std::string, int> &myMap) {
    // return some map statistics
}
Run Code Online (Sandbox Code Playgroud)

main.cpp 中的某处:

std::map<std::string, int> map1{ {"Hello", 10}, {"Hello2", 20}, {"Hello3", 30} };
myFunc(map1, 20);
Run Code Online (Sandbox Code Playgroud)

我的问题是:

移动语义是优化这段代码(使用移动将一个参数传递给另一个函数)的好方法,如下所示:

int internalFunc(std::map<std::string, int> &&myMap) {
    // now gets rvalue reference
    // return some map statistics
}

void myFunc(std::map<std::string, int> myMap, int num) {
    int x = internalFunc(std::move(myMap));
    // do some stuff...
} …
Run Code Online (Sandbox Code Playgroud)

c++ pass-by-reference move-semantics

2
推荐指数
1
解决办法
3117
查看次数

标签 统计

c++ ×1

move-semantics ×1

pass-by-reference ×1