內啓動一個成員函數的線程這裏是我的類的快速概要:試圖從類
class foo{
public:
vector<string> rawData;
vector<vector<string> > slicedData;
void readData();
void sortData();
private:
static void selectionSort(vector<string>);
};
基本上,readData
填充rawData
從外部文件的信息。一旦這樣做,sortData
將數據分成子集,其中每個存儲在slicedData
。我需要產生一個selectionSort
的線程來對每個子集進行排序,並且我必須在sortData
內部這樣做。
我已經試過了內sortData
這樣:
thread *threads = new thread[slicedData.size()];
for(int i = 0; i < slicedData.size(); i++){
threads[i] = thread(selectionSort,slicedData[i]);
}
...但是當我這樣做,G ++拋出error: attempt to use a deleted function
。
爲了記錄,我需要將線程存儲在數組中,以便稍後加入。我意識到這可以通過boost庫和線程組更好地完成,但我試圖保持這個項目無依賴關係。
請**用[mcve]或[SSCCE(Short,Self Contained,Correct Example)](http:// sscce。 org) – NathanOliver
那麼'foo ==線程'? – ChiefTwoPencils
不,它也會對數據做其他事情,只是沒有必要包含它們,因爲它們與此問題無關。 – IanCZane