нужно перевести задачу в Visual C++6.0

  • Автор темы Jane
  • Дата начала
Статус
Закрыто для дальнейших ответов.
J

Jane

Гость
#1
Условие: Дано 10 символьных строк, состоящих из слов, разделенных пробелами.
Вывести список неповторяющихся слов.
На Visual C++ задача не идет. Кто-нибудь может переделать?
Код:
#include <iostream> 
#include <iomanip> 
#include <string> 
#include <map> 
#include <boost/tokenizer.hpp> 

typedef std::vector<std::string> V; 
typedef boost::tokenizer<boost::char_separator<char> > char_tokenizer; 
typedef std::map<std::string, bool> unique_map; 

V get_strings() 
{ 
V v; 

// каким-нубудь образом заполним массив строками 
v.push_back("1 2 3"); 
v.push_back("2"); 

return (v); 
} 

void test_2() 
{ 
/* 
Дано 10 символьных строк, состоящих из слов, разделенных пробелами. 
Вывести список неповторяющихся слов. 
*/ 

V v = get_strings(); 

unique_map strings; // ассоциативный массив для выявления неповторяющихся слов 
boost::char_separator<char> separator(" "); 

// парсинг ... 
for(V::const_iterator stringIt = v.begin(); stringIt != v.end(); ++stringIt) 
{ 
char_tokenizer tokens(*stringIt, separator); 
for(char_tokenizer::const_iterator it = tokens.begin(); it != tokens.end(); ++it) 
{ 
unique_map::iterator mapIt = strings.find(*it); 
if (mapIt == strings.end()) 
{ 
// строка пока встретилась только 1 раз 
strings.insert(unique_map::value_type(*it, true)); 
} 
else 
{ 
// повтор строки - сбрасываем флаг уникальности 
mapIt->second = false; 
} 
} 
} 

// вывод результата 
for(unique_map::const_iterator it = strings.begin(); it != strings.end(); ++it) 
{ 
if (it->second) 
{ 
std::cout << it->first << std::endl; 
} 
} 
}
 
?

????

Гость
#2
<!--QuoteBegin-Jane+2:02:2007, 04:39 -->
<span class="vbquote">(Jane @ 2:02:2007, 04:39 )</span><!--QuoteEBegin-->На Visual C++ задача не идет.
[snapback]54756" rel="nofollow" target="_blank[/snapback]​
[/quote]
Какая версия и какие ошибки выдаёт?
 
J

Jane

Гость
#4
Версия Visual C++6.0
В этой строке выдается ошибка: #include <boost/tokenizer.hpp>
Если её удалить или заменить на другие вообще выдается куча ошибок.
 
04.09.2006
2 566
2
#5
Это значит, что библиотека BOOST у вас не установлена или установлена некорректно
 
J

Jane

Гость
#6
<!--QuoteBegin-European+2:02:2007, 11:19 -->
<span class="vbquote">(European @ 2:02:2007, 11:19 )</span><!--QuoteEBegin-->Это значит, что библиотека BOOST у вас не установлена или установлена некорректно
[snapback]54800" rel="nofollow" target="_blank[/snapback]​
[/quote]
А без BOOST можно обойтись?
 
?

????

Гость
#8
<!--QuoteBegin-Jane+2:02:2007, 13:44 -->
<span class="vbquote">(Jane @ 2:02:2007, 13:44 )</span><!--QuoteEBegin-->А без BOOST можно обойтись?
[snapback]54806" rel="nofollow" target="_blank[/snapback]​
[/quote]
можно. переписав 80% кода :(
легче сходить на http://boost.org/
 
Статус
Закрыто для дальнейших ответов.