首页 新闻 会员 周边

请教一个C++语法的问题,在初始列表中构造size指定的vector如何做?

0
悬赏园豆:20 [已关闭问题] 关闭于 2015-03-03 12:15

刚遇到一个问题真头疼,那个高手能指点迷津,不胜感激!

    //行
    class DataRow final
    {
    public:
        //构造函数
        DataRow(int countCells, DataTable &parent);        

    private:
        //行所包含的单元格数组
        vector<ObjValue*> m_cells;
        //所属表
        DataTable *m_parent;
    };


DataRow::DataRow(int countCells, DataTable &parent)
    : m_cells(countCells), m_parent(&parent)
{
    vector<ObjValue*> v1(2);
    vector<ObjValue*> v3(0);
}

 

为什么上面代码运行之后,m_cells的size等于1065320319(传人参数countCells等于2),难道vector的构造函数传人数字n不是构造size为n的vector,为什么函数里的2个语句能按预想的构造size为2和0的vector,而初始列表的不能?我想初始列表中构造初始个数为2的m_cells如何做呢?

问题补充:

真奇怪,当我无意中将源文件上的#include <string>改为#include <cstring>,问题就不复存在了,真是奇怪啊,这是什么道理呢?根本八杆儿打不着边啊,幸好我够幸运的!会不会哪天又不行哦?

Patrickz10的主页 Patrickz10 | 初学一级 | 园豆:7
提问于:2015-03-02 23:57
< >
分享
所有回答(1)
0

为什么与#include <string>,或许与编译器有关?

Patrickz10 | 园豆:7 (初学一级) | 2015-03-03 12:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册