2012-08-05 76 views
1

你好,我正在试图做一个包装处理来自MySQL查询的行和列结果。语句的返回数据可以是字符串或NULL指针。所以这里是我的尝试:多维向量字符串

class RowWrapper { 
public: 
    std::vector< std::vector <std::string> > data; 
    void SetVector(unsigned int rows, unsigned int columns); 
}; 

void RowWrapper::SetVector(unsigned int rows, unsigned int columns) 
{ 
    for (int x = 0; x > rows; x++) 
    { 
     std::vector<std::string> p_rows; 
     for (int y = 0; y > columns; y++) 
     { 
      p_rows.push_back(x*y); //Error here 
     } 
     data.push_back(temp_rows); 
    } 
} 

我有的错误是没有重载函数的实例,可能缺少关于向量或字符串的东西。

+5

您试图将'int' push_back到'vector '中。 – Mat 2012-08-05 09:02:43

回答

0

你的循环只要x>行就行吗?然后你正在增加?我认为这可能永远运行......或只要你不通过最大int值

此外,你的push_back接受一个int作为参数,并且没有构造函数的字符串接受一个int值作为论据。重载的函数错误可能是由于此?

+1

实际上它不应该运行,因为'rows'是'unsigned int'因此大于或等于零。因此,第一次比较应该已经失败,导致没有迭代(至少除非行大到足以落入负整数范围) – Grizzly 2012-08-05 16:47:05