//.h
#include <vector>
class myclass
{
private:
void fun();
private:
std::vector<MY_DATA> m_data;
};//.cpp
void fun()
{
m_data.push_back(&data1);
m_data.push_back(&data2);
m_data.push_back(&data3);
}程序精简后,就如上。问题是,执行完fun()后,m_data中只有一个元素(data3),怎么会这样?
调试跟踪,当m_data.push_back(&data1)执行后,m_data中的_MyFirst指针为"data1",_MyLast指针为"错误",_MyEnd指针为"错误";
当m_data.push_back(&data2)执行后,m_data中的_MyFirst指针为"data2",_MyLast指针为"错误",_MyEnd指针为"错误";
当m_data.push_back(&data3)执行后,m_data中的_MyFirst指针为"data3",_MyLast指针为"错误",_MyEnd指针为"错误"。就是说m_data的数据只出现了替换(替换了第一个),没有出现增加(push_back()无效?)。太郁闷了,希望高手指导.....................IDE环境-vc2003
编译器-mfc7.1
程序框架-对话框应用程序
#include <vector>
class myclass
{
private:
void fun();
private:
std::vector<MY_DATA> m_data;
};//.cpp
void fun()
{
m_data.push_back(&data1);
m_data.push_back(&data2);
m_data.push_back(&data3);
}程序精简后,就如上。问题是,执行完fun()后,m_data中只有一个元素(data3),怎么会这样?
调试跟踪,当m_data.push_back(&data1)执行后,m_data中的_MyFirst指针为"data1",_MyLast指针为"错误",_MyEnd指针为"错误";
当m_data.push_back(&data2)执行后,m_data中的_MyFirst指针为"data2",_MyLast指针为"错误",_MyEnd指针为"错误";
当m_data.push_back(&data3)执行后,m_data中的_MyFirst指针为"data3",_MyLast指针为"错误",_MyEnd指针为"错误"。就是说m_data的数据只出现了替换(替换了第一个),没有出现增加(push_back()无效?)。太郁闷了,希望高手指导.....................IDE环境-vc2003
编译器-mfc7.1
程序框架-对话框应用程序
你的摸班参数可是MY_DATA啊
{
......
}MY_DATA;难道应该std::vector<&MY_DATA> m_data;
Reason: cannot convert from 'struct MY_DATA *' to 'const struct MY_DATA'