读书人

vector中元素是结构体的有关问题

发布时间: 2012-08-21 13:00:21 作者: rapoo

vector中元素是结构体的问题
请问假如vector中元素是一个结构体指针类型,如何输出其中的值?
比如说定义如下:
struct xmlNode
{
char* m_nName;
char* m_nValue;
};

vector <xmlNode *> vectorNode;

xmlNode *pNode = new xmlNode();
pNode-> m_nName = "price ";
pNode-> m_nValue = "4.7 ";
vectorNode.push_back(pNode);
在容器中插入很多元素,怎么输出其中的值?

[解决办法]
vector <xmlNode *>::iterator iter = vectorNode.begin();
for (; iter != vectorNode.end(); iter++)
{
xmlNode *pNode = *iter;
cout << pNode-> m_nName << pNode-> m_nValue;
}
[解决办法]
http://www.cplusplus.com/reference/stl/vector/begin/

参考vector迭代器的用法,看看书也行。下面是一个可以编译过的,最好自己写一下

C/C++ code
struct   xmlNode    {        char*   m_nName;        char*   m_nValue;    };int main (){    vector <xmlNode   *>   vectorNode;    xmlNode   *pNode   =   new   xmlNode();    pNode-> m_nName   =   "price ";    pNode-> m_nValue   =   "4.7 ";    vectorNode.push_back(pNode);    vector<xmlNode   *>::iterator it;    for ( it=vectorNode.begin() ; it < vectorNode.end(); it++ )    {        printf("name:%s,value:%s\n",(*it)->m_nName,(*it)->m_nValue);    }    delete pNode;  return 0;}
[解决办法]
解析xml?既然都用了vector,为什么不用string?

C/C++ code
struct XMLNode{    string sName;    string sValue;};vector <XMLNode *> vectorNode;XMLNode *pNode = new XMLNode();pNode->sName = "Price";pNode->sValue = "4.7";vectorNode.push_back(pNode);cout << vectorNode[0]->sName.c_str() << ": " << vectorNode[0]->sValue.c_str() << endl; 

读书人网 >C++

热点推荐