如何检查线程在C ++ 11及更高版本中是否已完成工作?我正在阅读文档,并编写了以下代码:
#include <iostream>
#include <thread>
void mythread()
{
//do some stuff
}
int main()
{
std::thread foo(mythread);
if (foo.joinable())
{
foo.join();
//do some next stuff
}
}
Run Code Online (Sandbox Code Playgroud)
joinable 仅告诉线程已开始工作,但我想知道如何编写代码以检查线程是否已完成工作。
例如:
#include <iostream>
#include <thread>
void mythread()
{
//do some stuff
}
int main()
{
std::thread foo(mythread);
if (foo.finishedWork())
{
foo.join();
//do some next stuff
}
}
Run Code Online (Sandbox Code Playgroud) 要在Windows上使用git bash在git上提交一些东西我需要做,例如:
1.git add *
2.git commit -m "Commit test"
3.git push origin master
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我提交了所有更改.我想只添加特定文件(*.h和*.cpp).解决方案是使用:
ad. 1.:
git add *.h
git add *.cpp
Run Code Online (Sandbox Code Playgroud)
但是这样我只在当前文件夹中添加*.h和*.cpp.问题是如何在一个命令中的当前文件夹和子文件夹中添加文件*.h和*.cpp?就像是:
1.git add *.h and *.cpp and_in_subfolders
and then:
2.git commit -m "Commit test"
3.git push origin master
Run Code Online (Sandbox Code Playgroud)
谢谢.
为什么要使用get()与*,而不是只打电话*?
请考虑以下代码:
auto_ptr<int> p (new int);
*p = 100;
cout << "p points to " << *p << '\n'; //100
auto_ptr<int> p (new int);
*p.get() = 100;
cout << "p points to " << *p.get() << '\n'; //100
Run Code Online (Sandbox Code Playgroud)
结果完全一样.是get()更安全?
在c ++中,它可以通过引用(&)或指针(*)来实现.在C#中有"ref".如何从表中获取值并通过引用来更改它?
namespace Rextester
{
public class Program
{
public static void Main(string[] args)
{
int[] t=new int[3]{1,2,3};
int a=t[0]; //ref int a=t[0];
a+=10;
System.Console.WriteLine("a={0}", a); //11
System.Console.WriteLine("t[0]={0}", t[0]); //1
}
}
}
Run Code Online (Sandbox Code Playgroud)
例如在c ++中
int &a=tab[0];
Run Code Online (Sandbox Code Playgroud) 我写了一个简单的代码来创建文件夹.问题是我无法编译它.代码如下:
#include <iostream>
#include <boost/filesystem.hpp>
int main()
{
boost::filesystem::create_directories("/tmp");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
汇编:
g++ createFolder.cpp -std=c++0x -lboost_system -o createFolder
Run Code Online (Sandbox Code Playgroud)
我有错误:
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
如何更正编译过程以运行此程序.