通用矢量推回模板

Generic Vector Push Back Template

本文关键字:      更新时间:2023-10-16

我正在编写一些与数据库交互的代码。我的解决方案是使用各种结构的向量来表示数据库中的每个表。我想在我的Database类中创建一个模板来推送向量并插入一个新的(空白)行;然而,我不知道该在"push_back(…)"中放什么。以下内容有点道理,但不起作用。键被返回,这样我以后就可以在类中与向量交互了。

template <class T> void Database::newRecord(T& Type, int& key)
{
    Type.push_back(Type.value_type());
    key = Type.size()-1;
    Type[key].PK = key;
}

我会使用以下方法调用例程:

vector<table_row> table;
int key;
newRecord(table, key);
table[key]...

结构看起来像这样:

struct table_row {
    int PK;
    ....
};

谢谢!

对我来说,整个想法读起来很可疑。但如果这是你想要的,你可以不加推就可以做到,只需做vec.resize(vex.size()+1),而不是按你认为合适的方式修补vec.back()

我建议忘记"空"记录,但添加实际的预期内容。

尝试这个

template <class T> void Database::newRecord(T& Type, int& key)
{
    typedef Type::value_type type;
    Type.push_back( type() );
    key = Type.size()-1;
    Type[key].PK = key;
}
相关文章:
  • 没有找到相关文章