通用矢量推回模板
Generic Vector Push Back Template
我正在编写一些与数据库交互的代码。我的解决方案是使用各种结构的向量来表示数据库中的每个表。我想在我的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;
}
相关文章:
- 没有找到相关文章