草庐IT

set_thread_area

全部标签

c++ - 关于 std::thread 中的 C++ 自动类型转换行为

我创建了两个类cl1和cl2并且cl1有一个带有cl2&参数的构造函数.我有三个函数,一个以cl1为参数,一个以cl1&&为参数,一个以cl1&为参数。#include#includeclasscl1;classcl2;classcl2{public:inty;cl2(inty):y(y){}//ctor};classcl1{public:intx;cl1(intx):x(x){}//ctorcl1(cl2&ob1):x(ob1.y*2){}//ctorforautomaticconversionofcl2&tocl1,x=y*2};voiddo_work_with_cl(cl1ob)

c++ - 如何将 boost::graph 算法与 listS、setS 作为顶点/边缘容器一起使用?

使用boost::graph库的boost示例通常使用像这样的图usingnamespaceboost;typedefadjacency_list,property>graph;因此它们工作得很好。但我有一个图表typedefadjacency_listgraph;并且算法不是开箱即用的。在大多数情况下,必须提供用于查找特定顶点索引(整数值)的vertex_descriptor的映射。我想检查我的图是否是平面图并计算它的平面嵌入。我提供了一个顶点索引图,它确实以这种方式工作,例如connected_components算法,但显然不适用于boyer_myrvold_planarity_

c++ - 是否可以在 [win-builder](http ://win-builder. r-project.org/) 上构建一个使用 Rcpp 和 Boost.Thread 的 R 包?

最近做了一个R包,用Rcpp把R和C++整合起来。而C++库Boost用于多线程。我想知道我的包是否可以构建在http://win-builder.r-project.org/上?我发现定义了一个Make变量---BOOSTLIB---,如图http://cran.r-project.org/bin/windows/contrib/ThirdPartySoftware.html.我尝试使用仅包含header的库,没问题,但是当我尝试使用单独编译的库Boost.Thread时,出现“没有这样的文件”或“undefinedreference”错误。也许lib路径是错误的。但是,我几乎找不到

c++ - std::set_intersection 在两个完全不同的容器上

我有一个简单的要求,我需要从另一个vector中的字符串主列表中找到一个vector中字符串的出现。一开始我可以很容易地做到这一点:vectorcustom_list;setmaster_list;vectortarget_list;std::sort(custom_list.begin(),custom_list.end());std::set_intersection(custom_list.begin(),custom_list.end(),master_list.begin(),master_list.end(),back_inserter(target_list));这工作得

c++ - boost::asio signal_set 处理程序仅在捕获到第一个信号后执行,并忽略相同类型的连续信号

我有一个程序,我想通过发送SIGINT将一些数据写入文件而不是立即退出来停止它。但是,如果程序的用户再次发送SIGINT,则程序应立即退出并忘记将数据写入文件。出于可移植性的原因,我想为此目的使用boost::asio。我最初的(简化的)方法(见下文)没有奏效。这是不可能的还是我遗漏了什么?处理程序似乎只被调用一次(打印出消息)并且程序总是在循环达到最大迭代次数时停止。voidhandler(constboost::system::error_code&error,intsignal_number){if(!error){staticboolfirst=true;if(first){s

Java多线程-线程的创建(Thread类的基本使用)

文章目录一.线程和Thread类1.线程和Thread类1.1Thread类的构造方法1.2启用线程的相关方法2.创建第一个Java多线程程序3.使用Runnable对象创建线程4.使用内部类创建线程5.使用Lambada表达式创建线程6.多线程并发执行简单演示7.多线程并发执行的优势二.Thread类的属性与方法1.Thread类中的重要属性2.Thread类中常用方法总结2.1常用方法2.2中断线程2.3线程等待2.4线程调用start和直接调用run的区别三.Java线程的状态1.Java线程中的基本状态2.线程的状态转移在Java中如何进行多线程编程呢?关于线程的操作,操作系统是提供了

c++ - set<string> 像数字一样排序

我尝试将字符串集作为数字进行排序。每个字符串长度可以达到50,它们实际上并不只是由数字组成。据我了解并在论坛中搜索,c++默认按字典顺序对字符串进行排序。有没有办法更改此默认行为以满足我的需要?我需要的是如下所示:setsolution;solution.insert("12X451");solution.insert("X23454");solution.insert("12345");solution.insert("12315");solution.insert("123111");solution.insert("5231");for(autos:solution){cout这

c++ - 读取大文件时杀死 std::thread

我有一个std::thread函数调用fopen将一个大文件加载到一个数组中:voidloadfile(char*fname,char*fbuffer,longfsize){FILE*fp=fopen(fname,"rb");fread(fbuffer,1,fsize,fp);flose(fp);}调用者:std::threadloader(loadfile,fname,fbuffer,fsize);loader.detach();在某些时候,我的程序中的某些东西想要停止读取该文件并请求另一个文件。问题是当我删除fbuffer指针时,loader线程仍在运行,我得到了一个引发异常的竞争

c++ - 在 C++ 中定义虚拟 get 和 set 函数被认为是一种好的做法吗?

如果我有一个简单的2级类层次结构,例如这个://level1classSpare_Part{private:stringname;doubleprice;public:Spare_Part();stringgetName(){returnname;}doublegetPrice(){returnprice;}virtualintgetQuantity(){return-1;};//mayalsodefineitaspurevirtual};//level2classOn_hand:publicSpare_Part{private:intquantity;stringlocation;p

c++ - Valgrind 下 Mac OS 上的 std::thread.join() SIGSEGV

以下简单代码(C++11)将仅在MacOS和Linux上运行:#include#include#includevoidthreadFunction(){for(intcc=0;cc但是,在Valgrind中包装执行:valgrind--leak-check=full--show-reachable=no--track-fds=yes--error-exitcode=1--track-origins=yes./theexecutable...它现在可以在Linux上运行,但不能在MacOSX上运行,失败:==47544==Processterminatingwithdefaultacti