当前位置: 首页 > wzjs >正文

公司网站建设哪家正规做3d图的网站有哪些

公司网站建设哪家正规,做3d图的网站有哪些,机场网站建设需求,flash如何制作网站文章目录 一、std::ref的作用二、 使用指针和lambda表达式的好处<br><br>三、模板可变参数与引用折叠&#xff08;一&#xff09;模板可变参数&#xff08;二&#xff09;引用折叠 一、std::ref的作用 在多线程编程中&#xff0c;std::ref是一个非常有用的工具&…

文章目录

  • 一、std::ref`的作用
  • 二、 使用指针和lambda表达式的好处<br><br>
  • 三、模板可变参数与引用折叠
    • (一)模板可变参数
    • (二)引用折叠

一、std::ref`的作用

  在多线程编程中,std::ref是一个非常有用的工具,它允许我们将引用传递给线程函数,而不是传递副本。这在某些情况下可以避免不必要的拷贝,提高效率。例如:

void Print1(size_t n, const std::string& s, std::mutex& m, int& rx);

  如果直接这样传递参数会报错:
  同时在线程函数中对a修改,不会影响外部实参,因为:线程函数参数虽然是引用方式,但其实际引用的是线程栈中的拷贝

// unknown-type std::invoke(_Callable &&,_Ty1 &&,_Types2 &&...) noexcept(<expr>)
std::thread t1(Print1, 100, "hello mutex", std::ref(mtx), std::ref(x));

  这里std::refmtxx的引用传递给了线程函数Print1,而不是它们的副本。如果不使用std::refmtxx将会被拷贝,这可能导致线程间无法正确共享资源。

二、 使用指针和lambda表达式的好处

  在多线程编程中,线程函数的参数传递是一个关键问题。使用指针和lambda表达式可以有效避免引用带来的麻烦。例如,lambda表达式可以捕获上下文变量,并以值或引用的方式传递给线程函数,简化代码并避免引用悬挂或生命周期问题。

void Print(size_t n, size_t j, const std::string& s) {for (size_t i = j; i < j + n; i++) {std::cout << std::this_thread::get_id() << " " << s << ": " << i << std::endl;}
}int main() {std::thread t1(Print, 100, 1, "Thread 1");std::thread t2([=]() {Print(100, 101, "Thread 2");});t1.join();t2.join();return 0;
}

三、模板可变参数与引用折叠

(一)模板可变参数

模板可变参数是C++11引入的一个强大特性,它允许函数接受任意数量和类型的参数。std::thread的构造函数利用了模板可变参数,能够接受任意类型的参数,并将它们转发给线程函数。例如:

template <class F, class... Args>
explicit std::thread(F&& f, Args&&... args);

这里的Args&&... args表示可变参数模板,std::thread会将这些参数转发给线程函数。

(二)引用折叠

引用折叠是C++11中引入的一个机制,用于处理引用的传递和绑定。它的主要规则如下:

• 左值引用折叠:如果一个引用被绑定到一个左值,那么它会被折叠为左值引用。

• 右值引用折叠:如果一个引用被绑定到一个右值,那么它会被折叠为右值引用。

• 混合引用折叠:如果一个引用被绑定到一个左值或右值,那么它会被折叠为左值引用。

引用折叠的作用是确保参数的正确传递,避免不必要的拷贝和悬挂引用问题。例如:

注意:如果是类成员函数作为线程参数时,必须将this作为线程函数参数。

http://www.dtcms.com/wzjs/805754.html

相关文章:

  • 淄博网站开发网泰好咸阳网站制作公司
  • 江门网站制作专业社交网站建设码
  • 免费网站平台推荐南昌网站建设公司效果
  • 网站建设移动端官网北京软件外包公司排行榜
  • 中文域名怎样绑定网站公司注册
  • 大庆百度做网站多少钱6万左右装修三室两厅
  • 定制型网站一般价格wordpress主题文档
  • 三亚网站建设美工海淀教育人才网站
  • 建设银行网站修改密码网站开发实训基本要求
  • 浦口区网站建设经验丰富东莞营销网站建设服务
  • 飞言情做最好的小说网站电子商务网站的设计工具
  • 新余网站建设公司三水做网站
  • 建设网站商城需要多少费用吗如何查看网站备案信息吗
  • 电子商务网站建设规划书的内容上海关键词优化推荐
  • 简述网站开发设计流程图做办公家具在哪个网站推销好
  • 临沂制作网站多少钱网页设计好看的网站
  • 技术支持海安网站建设win wordpress
  • 北京网站制作建设公司哪家好建网站软件工具
  • 免费制作网站的基本流程哮喘病应该怎样治除根
  • 网站建设的公司名称wordpress python插件
  • 用django怎么做网站网络设计一般包括
  • 网站如何做中英文效果网站建设预期效果
  • 做创意美食的视频网站有哪些网站图片怎么做超链接
  • wordpress自媒体主题苏州seo排名优化费用
  • 公司请外包做的网站怎么维护网站项目设计与制作
  • 怎样维护网站建设新网站怎么做友情链接
  • 论mvc框架在网站开发的应用软件开发公司账务处理
  • 长沙交互网站设计服务商杭州知名设计公司
  • 网站编程培训学校有哪些互联网舆情监测中心待遇
  • 网站建设公司外链怎么做建设部网站有建筑施工分包