addRow in PIVector2D

git-svn-id: svn://db.shs.com.ru/pip@799 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
2019-06-11 12:52:12 +00:00
parent 35a19403d6
commit 477c9dc256
2 changed files with 38 additions and 9 deletions

View File

@@ -1,14 +1,14 @@
#include "pip.h"
PIKbdListener kbd(0, 0, false);
int main() {
//PISystemInfo::machineID();
kbd.enableExitCapture();
PIThread t;
t.start(10);
//WAIT_FOR_EXIT;
piSleep(20.);
t.stop();
PIVector<double> v;
for (int i=0; i<9; ++i) v << i;
PIVector2D<double> v2(3,3,v);
piCout << v2;
v2.addRow(PIVector<double>() << 99 << 88 << 77 << 66);
v2.addRow(v2.row(1));
piCout << v2;
return 0;
}

View File

@@ -170,7 +170,12 @@ public:
inline Col col(size_t index) {return Col(this, index);}
inline ColConst col(size_t index) const {return ColConst(this, index);}
inline PIVector2D<T> & setRow(size_t row, const Row & other) {
size_t sz = piMin<size_t>(cols_, other.p_->cols_);
size_t sz = piMin<size_t>(cols_, other.sz_);
mat._copyRaw(mat.data(cols_ * row), other.data(), sz);
return *this;
}
inline PIVector2D<T> & setRow(size_t row, const RowConst & other) {
size_t sz = piMin<size_t>(cols_, other.sz_);
mat._copyRaw(mat.data(cols_ * row), other.data(), sz);
return *this;
}
@@ -179,6 +184,30 @@ public:
mat._copyRaw(mat.data(cols_ * row), other.data(), sz);
return *this;
}
inline PIVector2D<T> & addRow(const Row & other) {
size_t sz = piMin<size_t>(cols_, other.sz_);
size_t ps = mat.size();
mat.resize(mat.size() + cols_);
mat._copyRaw(mat.data(ps), other.data(), sz);
rows_++;
return *this;
}
inline PIVector2D<T> & addRow(const RowConst & other) {
size_t sz = piMin<size_t>(cols_, other.sz_);
size_t ps = mat.size();
mat.resize(mat.size() + cols_);
mat._copyRaw(mat.data(ps), other.data(), sz);
rows_++;
return *this;
}
inline PIVector2D<T> & addRow(const PIVector<T> & other) {
size_t sz = piMin<size_t>(cols_, other.size());
size_t ps = mat.size();
mat.resize(mat.size() + cols_);
mat._copyRaw(mat.data(ps), other.data(), sz);
rows_++;
return *this;
}
PIVector<PIVector<T> > toVectors() const {
PIVector<PIVector<T> > ret;