我有一个字符串对象的引用如何从中获取数据。这是我的样本:
string key = "key1";
gpointer somepointer;
GHashTable* myTable;
g_hash_table_insert(myTable,&key1,somepointer);
GList *keysList = g_hash_table_get_keys(myTable);// here i got keys previously set
keysList = g_list_first(keysList);
string recentKey = (keysList->data);
数据是指字符串的引用。如何从参考
中检索数据答案 0 :(得分:1)
如果数据是对字符串的引用,那么
keysList->数据返回字符串。
#include<iostream>
#include <cstring>
#include <string>
using namespace std;
int main()
{
string MyString("ABCD");
string &MyString2 = MyString;
char * cstr;
cout<<"\n"<<MyString;
cout<<"\n"<<MyString2;
cstr = new char [MyString.size()+1];
strcpy (cstr, MyString.c_str());
cout<<"\n"<<cstr;
delete[] cstr;
return 0;
}
答案 1 :(得分:1)
如果keysList->data
是gpointer
(void*
),我猜有些人就像是string recentKey = *(string*)keysList->data;
需要以下内容:
{{1}}
希望这有帮助
答案 2 :(得分:0)
“我如何从参考中检索数据?”是什么意思?你尝试过这样做吗?
std::string
中唯一的数据是字符串长度和有效负载char*
数组
keysList->data.length()
访问keysList->data.c_str()
数组时,char*
将访问该长度。
您的上一句话 从参考资料中获取数据:
string recentKey = (keysList->data);
此语句创建字符串的完整副本。由于它是副本,因此对recentKey
的任何修改都不会显示在keysList->data
中。这是好事还是坏事取决于你的意图。