Рейтинг:
6
CPallini
Что плохого в подходе stringstrem?
Попробуй:
#include <iostream>
#include <sstream>
#include <string>
int main(){
int a=7;
const int *ptr=&a;
std::ostringstream oss;
oss << ptr;
std::string address_a = oss.str();
std::cout<<address_a<<std::endl;
}
Member 13277493
Спасибо! Мой подход к stringstream был другим, я не знал о функции str (), я должен был хорошо изучить stringstream, прежде чем использовать его.
CPallini
Добро пожаловать.
Рейтинг:
12
Richard MacCutchan
Вы не можете привести число к строке. Вам нужно использовать метод печати, чтобы преобразовать его. Вы можете сделать это с помощью cout или с помощью типа stringstream.
std::cout << ptr << endl;
Member 13277493
Мне нужно это преобразование для создания моей хэш-функции, но если это невозможно, то я подумаю о другой функции хэширования, спасибо!
Richard MacCutchan
Мой ответ объясняет, как вы мочь перевести его. Чего ты не понимаешь?
Member 13277493
Извините, я неправильно понял ответ. Я постараюсь и посмотрю, не возникнут ли какие-нибудь проблемы.
Richard MacCutchan
Нам было бы полезно помочь вам, если бы вы объяснили, что вы пытаетесь сделать.
Member 13277493
Я просто хотел построить хэш-функцию для узлов связанного списка, которая принимала бы в качестве входных данных их адреса и давала мне индекс хэш-таблицы
Richard MacCutchan
Поскольку все адреса будут уникальными, вам не нужно будет их хэшировать. На самом деле хеширование теоретически может привести к дублированию значений.
Member 13277493
Я хочу использовать его для обнаружения цикла в связанном списке
Richard MacCutchan
Затем, как я уже сказал, просто используйте адреса узлов, так как все они будут уникальными.