次のようなベクトルのベクトルがあります。
あ: 0 1 0
b: 1 0 1
c: 0 1 1
私のプログラムのこの部分は機能します。0 を削除したいので remove_if を使用し、1 を t と位置に置き換えたいので、replace_if を使用して最終的に次のようなものを作成します。
を: t2
b: t1、t3
c: t2、t3
これら2つのことは私のプログラムでは機能せず、もうわかりません。問題の1つは、intに「t」を入れたいのですが、これに文字列を使用できるかどうかわかりません。
これが私のコードです:
#include <iostream>
#include <vector>
#include <iterator>
int main (){
srand(time(0));
int e = (rand() % 10) + 3;
int tim = (rand() % 10) +1 ;
std::vector< std::vector<int> > myvector;
std::cout << "Time: 0 = Not available, 1 = available" << std::endl;
for(int vec = 0; vec < e; vec++){
std::vector<int> newVector(tim);
for(int i = 0; i < tim; i++){
newVector[i] = (rand() % 2);
}
myvector.push_back(newVector);
std::cout << "The Time " << (vec+1) << " is ";
for(int b = 0; b < tim; b++){
int value = myvector[vec][b];
std::cout << " " << value << " ";
}
}
//Delete the 0 in time
int int_to_remove = 0;
remove_if(myvector.begin(), myvector.end(), int_to_remove);
std::cout << "The new Time "<< std::endl;
copy(myvector.begin(), myvector.end(), output);
//Change the name of 1 to t1
int int_to_replace = 1;
replace_if(myvector.begin(), myvector.end(), int_to_replace, t(tim));
std::cout << "The new Time"<< std::endl;
copy(myvector.begin(), myvector.end(), output);
return 0;
}
ありがとう