私は異なるタイプの文字列を持っており、この文字列の重複するエントリを調べる必要があります。文字列C++で文字列の重複するエントリを見つける
string aStr= "1.1,1.2,1.3, 1"; //output should be duplicate entry
string aStr= "1.1,1.2,1.3"; //Ouput NO duplicate entry
string aStr= "1,2,1"; //o/p duplicate entry
string aStr = "1,2,3";//output No duplicate
I have tried as
std::vector <std::string> aOutString;
std::set <int> full_list;
std::set <std::string> aEntryInDouble;
int aNum1;
boost::split(aOutString, aStr , boost::is_any_of(","));
for(size_t it = 0; it < aOutString.size(); ++it)
{
if (aOutString[it].find('.') != std::string::npos)
{
//If entry is like "1.1,1.2,1.3"
if(!aEntryInDouble.insert(aOutString[it]).second)
{
aDup = false;
break;
}
}
else
{
//For entry "1,2,1"
aNum1 = std::atoi(aOutString[it].c_str());
if(aNum1)
{
if(!full_list.insert(aNum1).second)
{
aDup = false;
break;
}
}
- の 異なるタイプIは、エントリ文字列「文字列ASTR = 『1.1,1.2,1.3、1』のための解決策を見つけることができないのです。 は解決策を見つけるために私を助けてください。
おかげで、
何ができないのですか? _specific_問題が発生しましたか? –
なぜ '.'を明示的に扱っていますか?アルゴリズムは単純なようです:コンマで区切ってください。分割リストからセットを作成します。セットの長さが分割リストの長さと等しい場合は、重複はありません。 – erip
ここに仕事のテキストを入れてください。たとえば、「複製」を定義します。 – Les