for文等を用いて、スレッドを複数作成したいのですが、エラーが出てしまい作りきれません。
途中までのコードを添付します。
よろしくお願いいたします。

void ThreadController::Process_Thread(){
    vector<ThreadSet> threadData;           // 各スレッドのデータを格納
    ThreadSet oneData = { 0 };              // 1つのスレッドのデータを格納
    vector<thread> threads;                 // 複数スレッドを格納

    int dataNum = 0;                        // スレッド数を格納
    int i = 0;                              // ループ用変数

    // スレッド数の入力
    cout << "スレッド数" << endl;
    dataNum = Set_IntNumber();

    // 各スレッドのデータを入力
    for (i = 0; i < dataNum; ++i) {

        cout << "名" << endl;
        cin >> oneData.threadName;

        cout << "タイム" << endl;
        oneData.intervalTime = Set_IntNumber();

        // スレッドデータに追加
        threadData.push_back(oneData);
 

   }
    // スレッド実行
    for (i = 0; i < dataNum; ++i) {
        thread threads(Count_SpecifyInterval, threadData[i]);
    }

    // 終了を待つ
    for (thread &th : threads) {
        th.join();
    }

}


int ThreadController::Set_IntNumber(){
int intervalTime = 0;                   // 入力された実行間隔を格納する変数

do {
    // 実行間隔の入力
    cout << ">";
    cin >> intervalTime;

    // 数字以外が打たれたときエラーを返す
    if ((cin.fail()) || (intervalTime < TIME_MIN)) {
        cin.clear();

        // バッファを空に
        while (getchar() != '\n');

        cout << "正の整数のみ入力してください" << endl;
        intervalTime = ERROR;
    }
    else {
        // エンターキー読み捨て
        getchar();
    }

// 正の数でない場合再入力
} while (intervalTime < TIME_MIN);

return intervalTime;
}

void ThreadController::Count_SpecifyInterval( ThreadSet& dataSet ){
int i = 0;                              //

while ( i < COUNT_MAX ) {

    // 動作の待機
    this_thread::sleep_for(chrono::milliseconds(dataSet.intervalTime));

    // カウントの加算、表示
    ++i;    
    cout << dataSet.threadName << ":" <<i << endl;
}
}