2次元ベクトルの文字だけを見つけて1次元ベクトルにコピーする必要があります。例えば、ベクターが含まれている可能性があり:ベクトルの文字だけをC++の別のベクトルにコピーする
3 4 5
A B
A C
A B
B C
1 C 3
その後、新しいベクトルが含まれます
A B C
文字が繰り返されてはなりません。 これは大きなプロジェクトの一環であり、私はこの部分で立ち往生しています。
bool seen[26] = { false };
for (const auto& v : v2d)
for (const auto& c : v)
if ('A' <= c && c <= 'Z')
seen[c - 'A'] = true;
std::string result;
for (char c = 'A'; c <= 'Z'; ++c)
if (seen[c - 'A']) result += c;
これは宿題のようです。だから、私はあなたに(1) 'char'が文字かどうかを知る関数があると伝えます(http://en.cppreference.com/w/cpp/string/byte/isalpha)。 (2) 'std :: set'(http://www.cplusplus)のように、文字を別のものにコピーしてから最終的な 'std :: vector 'にコピーすることは意味があります。 (あるいは、すべての文字を最後の 'std :: vector 'にコピーして、重複を取り除くことができます( 'std :: sort()'、 'std :: unique () 'http://www.cplusplus.com/reference/algorithm/unique/を呼び出し、ベクター上で' erase() 'を呼び出す))。 –
@ジャックあなたのコードを質問に編集して、人々が問題の内容を解答できるようにします。 – Galik
@Galik Done。ありがとうございました。 – Jack