可以用Util::createTable(const vector<string>& colNames, const vector<ConstantSP>& cols)建新表,如下例所示,取原表前30列组成新表,其中用t->getColumnName(i)得到原表列名,用t->getColumn(i)得到列向量:
auto handler_1 = [&](Message msg) { vector<string> colName; vector<ConstantSP> col; TableSP t = (TableSP)msg; for (int i = 0; i < 30; ++i) { colName.push_back(t->getColumnName(i)); col.push_back(t->getColumn(i)); } TableSP ret = Util::createTable(colName, col); }
也可以参考《c++ api读写指南》(https://gitee.com/dolphindb/Tutorials_CN/blob/master/c++api.md#table)中table节的方法实现: