蓝桥ros机器人之现代c++学习笔记7.3期物(代码片段)

zhangrelay zhangrelay     2022-12-03     514

关键词:

学习了如下程序:

// future example
#include <iostream>       // std::cout
#include <future>         // std::async, std::future
#include <chrono>         // std::chrono::milliseconds

// a non-optimized way of checking for prime numbers:
bool is_prime (int x) 
  for (int i=2; i<x; ++i) if (x%i==0) return false;
  return true;


int main ()

  // call function asynchronously:
  std::future<bool> fut = std::async (is_prime,444444443); 

  // do something while waiting for function to set future:
  std::cout << "checking, please wait";
  std::chrono::milliseconds span (100);
  while (fut.wait_for(span)==std::future_status::timeout)
    std::cout << '.' << std::flush;

  bool x = fut.get();     // retrieve return value

  std::cout << "\\n444444443 " << (x?"is":"is not") << " prime.\\n";

  return 0;


#include <iostream>
#include <thread>
#include <future>

int main() 
    // pack a lambda expression that returns 7 into a std::packaged_task
    std::packaged_task<int()> task([]()return 7;);
    // get the future of task
    std::future<int> result = task.get_future();    // run task in a thread
    std::thread(std::move(task)).detach();
    std::cout << "waiting...";
    result.wait(); // block until future has arrived
    // output result
    std::cout << "done!" << std:: endl << "future result is " << result.get() << std::endl;
    return 0;

(⊙﹏⊙)

 

(⊙﹏⊙)


 

 

 

 

 

蓝桥ros机器人之现代c++学习笔记7.4条件变量(代码片段)

学习如下代码://condition_variableexample#include<iostream>//std::cout#include<thread>//std::thread#include<mutex>//std::mutex,std::unique_lock#include<condition_variable>//std 查看详情

蓝桥ros机器人之现代c++学习笔记2.3类型推导(代码片段)

auto#include<initializer_list>#include<vector>#include<iostream>classMagicFoopublic:std::vector<int>vec;MagicFoo(std::initializer_list<int>list)for(autoit=list.begin( 查看详情

蓝桥ros机器人之现代c++学习笔记3.3右值引用(代码片段)

右值引用和左值引用#include<iostream>#include<string>voidreference(std::string&str)std::cout<<"lvalue"<<std::endl;voidreference(std::string&&str)std::cout<<" 查看详情

蓝桥ros机器人之现代c++学习笔记7.2互斥量与临界区(代码片段)

看如下三段代码://mutexexample#include<iostream>//std::cout#include<thread>//std::thread#include<mutex>//std::mutexstd::mutexmtx;//mutexforcriticalsectionvoidprint_block(intn,charc)// 查看详情

蓝桥ros机器人之现代c++学习笔记4.1线性容器(代码片段)

学习的程序如下:#include<iostream>#include<array>#include<vector>voidfoo(int*p,intlen)for(inti=0;i!=len;++i)std::cout<<p[i]<<std::endl;intmain()std::vector<int>v;std::cout<<"size:"<<v.size()<<std::endl;//outpu... 查看详情

蓝桥ros机器人之现代c++学习笔记资料(代码片段)

在蓝桥云课ROS中,使用:gitclonehttps://github.com/changkun/modern-cpp-tutorial.git案例作者使用系统如下: 云实践平台使用-std=c++17,书中第一章案例:需要做一些修改的。否则报错如下:C=gccCXX=clang... 查看详情

蓝桥ros机器人之现代c++学习笔记2.1常量(代码片段)

 nullptrC++11引入了nullptr关键字,专门用来区分空指针、0。#include<iostream>#include<type_traits>voidfoo(char*);voidfoo(int);intmain()if(std::is_same<decltype(NULL),decltype(0)>::value)std::cout<<"NULL==0"<<std::endl;if(std... 查看详情

蓝桥ros机器人之现代c++学习笔记7.5原子操作(代码片段)

学习如下代码:线程竞争和乱序执行#include<thread>#include<iostream>intmain()inta=0;volatileintflag=0;std::threadt1([&]()while(flag!=1);intb=a;std::cout<<"b="<<b<<std::endl;);std::threadt2([&]()a=5;flag=1;);... 查看详情

蓝桥ros机器人之现代c++学习笔记7.5内存模型(代码片段)

学习代码如下:#include<atomic>#include<thread>#include<vector>#include<iostream>usingnamespacestd;usingnamespacestd::chrono;constintN=10000;voidrelaxed_order()cout<<"relaxed_order:"<<endl;atomic<int>counter=0;vector<thread>v... 查看详情

步履艰难的课程维护→机器人工程←蓝桥ros1/2云课(代码片段)

...水的朋友还是非常多的。蓝桥ROS课程已经开设5年了:机器人课程反馈中如何面对批评和负面消息_zhangrelay的博客-CSDN博客 最大的问题出现在哪里呢?和教育机器人市场类似。很多人围绕一些点,做类似同质化的机器... 查看详情

ros学习笔记之——3dmapmerge(代码片段)

之前博客《ROS实验笔记之——基于cartographer的多机器人SLAM地图融合》已经实现了2Dmapmerge,也做了大量这方面的demotwo基于两个turtlebot2的多机器人SLAM地图融合本博文看看3dmapmerge方面的资料首先呢有CCM-SLAM(https://github.com/VI... 查看详情

蓝桥ros机器人之c++基础1总结和测评(代码片段)

蓝桥ROS机器人之C++基础开发第一个程序语句是一种使程序执行某些操作的指令。语句通常以分号结束。函数是按顺序执行的语句的集合。每个C++程序都必须包含一个名为main的特殊函数。当运行程序时,执行从main... 查看详情

ros学习笔记之——evo工具的使用(代码片段)

之前博客《ROS学习笔记之——VICON的使用》用vincon获得了机器人的真实轨迹,并且通过amcl可以获得了机器人的定位结果,下面通过EVO包来表征performance(本文不像网上大部分博客复制粘贴别人的图,连跑都没跑过&#... 查看详情

蓝桥ros机器人之ros1和ros2切换(代码片段)

首先,确保完成配置:☞ 蓝桥ROS机器人系统更新和功能包安装记录为了确保安装速度,请使用国内源:sudosh-c'./etc/lsb-release&&echo"debhttp://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/`lsb_release-cs`m 查看详情

ros仿真笔记之——基于rrt_exploration的单个机器人自主探索建图(代码片段)

之前博文已经介绍过机器人exploration以及多机器人SLAMmapmerage《ROS学习笔记之——多机器人探索环境》《ROS仿真笔记之——基于gazebo的多机器人探索环境仿真》《ROS仿真笔记之——多移动机器人SLAM地图融合》《ROS仿真笔记之——... 查看详情

蓝桥ros机器人之c++基础2总结和测评(代码片段)

函数是旨在完成特定工作的可重用语句序列。自己编写的函数称为用户定义函数。函数调用是告诉CPU执行函数的表达式。发起函数调用的函数是调用者,被调用的函数是被调用者或被调用函数。进行函数调用时不要忘记包含... 查看详情

ros学习笔记之——gazebo仿真(代码片段)

...人学习gazebo的学习记录。 Gazebo是一款3D仿真器,支持机器人开发所需的机器人、传感器和环境模型,并且通过搭载的物理引擎可以得到逼真的仿真结果。Gazebo是近年来最受欢迎的三维仿真器之一,并被选为美国DARPA机... 查看详情

云原生与蓝桥ros机器人课程2017-2022

☞蓝桥云课ROS机器人发布5年啦(原实验楼ROS机器人在线云实践课程)☞蓝桥ROS机器人之曾经新版本(indigo/kinetic/melodic/ardent/dashing)通过查阅资料发现云原生通常有如下五个特征:轻、快、不变的基础设施弹性... 查看详情