単一のコマンドを使用して、単一の「単純な」行でstring
に含まれる s をどのように逆にすることができるかを考えていました。vector
for_each
ええ、私はそれがカスタムファンクターで簡単であることを知っていますが、それを使用して実行できないことを受け入れることはできませんbind
(少なくとも私はできませんでした)。
#include <vector>
#include <string>
#include <algorithm>
std::vector<std::string> v;
v.push_back("abc");
v.push_back("12345");
std::for_each(v.begin(), v.end(), /*call std::reverse for each element*/);
編集: これらの素晴らしいソリューションに感謝します。ただし、私にとっての解決策は、Visual Studio 2008 機能パック/SP1 に付属するtr1::bindを使用しないことでした。期待どおりに動作しない理由はわかりませんが、その通りです ( MS でさえバグがあることを認めています)。たぶん、いくつかの修正プログラムが役立つでしょう。
boost::bind を使用すると、すべてが希望どおりに機能し、非常に簡単になります (ただし、面倒なこともあります :))。そもそもboost::bindを試してみるべきだった...