C++ 通过引用获取内容
我有一个对字符串对象的引用,如何从中获取数据。这是我的样本:C++ 通过引用获取内容,c++,gtk,glib,C++,Gtk,Glib,我有一个对字符串对象的引用,如何从中获取数据。这是我的样本: 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
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);
数据引用字符串的引用。如何从引用中检索数据如果数据引用的是字符串 keysList->data返回字符串
#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;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
字符串MyString(“ABCD”);
字符串&MyString2=MyString;
char*cstr;
cout你所说的“如何从引用中检索数据”是什么意思?你试过这样做吗
std::string
中唯一的数据是字符串长度和有效负载char*
数组。
keysList->data.length()
将访问长度,而keysList->data.c_str()
将访问char*
数组
您的最后一条语句是从引用中获取数据:
string recentKey = (keysList->data);
此语句创建字符串的完整副本。因为它是副本,所以对recentKey
的任何修改都不会显示在keysList->data
中。这是好是坏取决于您的意图。如果keysList->data
是gpointer
(void*
),我想有些演员会像
需要采取以下措施:
string recentKey = *(string*)keysList->data;
希望这有帮助如果数据
是一个字符串&
(到有效位置),那么您的语句string recentKey=(keysList->data);
是正确的。您是否尝试过打印或检查它?但数据无效*我尝试过显示值,它显示的是内存引用,而不是值。。。。