У меня есть один метод, который принимает const char *
как показано ниже —
bool get_data(const char* userid) const;
Теперь ниже мой цикл for, в котором мне нужно позвонить get_data
метод мимоходом const char *
, В настоящее время ниже для использования цикла uint64_t
, Мне нужно конвертировать это uint64_t
в const char *
а затем перейти к get_data
метод.
for (TmpIdSet::iterator it = userids.begin(); it != userids.end(); ++it) {
// .. some code
// convert it to const char *
mpl_files.get_data(*it)
}
Вот TmpIdSet
является typedef std::set<uint64_t> TmpIdSet;
Итак, мой вопрос, как я должен конвертировать uint64_t
в приведенном выше коде const char *
?
Одним из способов было бы преобразовать его сначала в std::string
с помощью станд :: to_string а затем получить доступ к необработанным данным, используя std::string::c_str()
функция-член:
#include <string>
....
uint64_t integer = 42;
std::string str = std::to_string(integer);
mpl_files.get_data(str.c_str());
mpl_files.get_data( std::to_string( *it ).c_str() )
Включают <string>
заголовок. Для g ++ укажите -std=c++11
,