Это моя попытка передать вектор ND произвольных типов элементов , внутренней и внешней длины в класс и распечатать его содержимое. Я знаю, что есть несколько вопросов, но я не смог их решить. Как бы я назначил произвольную длину внутреннего вектора переменной или набору переменных? Я попытался передать итераторы конструктору и назначить их переменным-членам (с передачей вектора и без нее), но это не увенчалось успехом. Я понимаю, что есть библиотеки для работы с матричными объектами и другие вопросы, которые решают проблемы, аналогичные тем, которые были поставлены здесь, однако, существуют уникальные / незначительные сценарии ios, которые составляют мотивы для этого вопроса.
#include <iostream>
#include <iterator>
#include <vector>
template <typename V, typename I>
class myVec{
private:
I rows;
I cols;
std::vector< std::vector<V> > vec( rows , vector<int> (cols));
public:
myVec(std::vector< std::vector<V> > const &myArr){
vec = myArr;
rows = myArr.size();
cols = myArr[].size();
}
void printVec(){
for(int i = 0; i < vec.size(); i++){
std::cout << "{";
for(int j = 0; j < vec[i].size(); j++){
std::cout << vec[i][j];
}
if (i < vec.size()){
std::cout << "}";
if (i < vec.size()-1){
std::cout << ",";
std::cout << " ";
}
}
}
std::cout << std::endl;
}
};
int main () {
std::vector< std::vector<int> > mainVec = {{1, 2, 4}, {5, 6, 7, 8}, {4, 3, 2, 1, 7}, {8, 7, 6, 5, 9, 3}};
myVec<int, int> vec1 = myVec<int, int>(mainVec);
vec1.printVec();
return 0;