Ну вот например я хочу сделать в своём типе данных так, чтобы я мог всунуть туда элементы массива:
q_array arr {СЮДА};
Вот примерно так:
q_array arr {6161,61267,?12712,6126};
Создаю свой тип данных похожий на вектор, для развития ;)
Ну вот допустим в конструкторе класса я могу сделать так q_array (Var, Var, Var);
Var - если шо это шаблон, можете считать что это может быть любой тип данных выбранный юзером.
И получится что я могу написать:
q_array arr {7,12712,616}; Я могу написать не больше и не меньше значений, т. к. выбрал только три аргумента, ну вот как сделать так, чтобы я мог написать столько значений массива, сколько у меня указано в шаблоне - 25.
Фуххххх спасибо, устал писать ;)
П. С. Это я пишу свой тип данных по типу вектора
Другие языки программирования и технологии
Как передать значение массива в аргумент? (ПЕРЕЗАЛИВ) с++
#include <iostream>
#include <algorithm>
template<typename Type, const size_t n>
class Array {
public:
using iterator = Type*;
using const_iterator = const Type*;
Array(std::initializer_list<Type> ilist) {
std::copy(ilist.begin(), ilist.end(), std::begin(box_));
}
Type& operator[](const int index) {
return box_[index];
}
const Type& operator[](const int index)const {
return box_[index];
}
iterator begin() {
return box_;
}
iterator end() {
return box_ + n;
}
const_iterator begin()const {
return box_;
}
const_iterator end()const {
return box_ + n;
}
private:
Type box_[n];
};
int main() {
Array<int, 9> box = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
for (const auto value : box) std::cout << ' ' << value;
std::cout.put('\n');
for (auto &value : box) value *= 10;
for (const auto value : box) std::cout << ' ' << value;
std::cout.put('\n');
std::cout << ' ' << box[3] - 5 << '\n';
std::cin.get();
}
#include <algorithm>
template<typename Type, const size_t n>
class Array {
public:
using iterator = Type*;
using const_iterator = const Type*;
Array(std::initializer_list<Type> ilist) {
std::copy(ilist.begin(), ilist.end(), std::begin(box_));
}
Type& operator[](const int index) {
return box_[index];
}
const Type& operator[](const int index)const {
return box_[index];
}
iterator begin() {
return box_;
}
iterator end() {
return box_ + n;
}
const_iterator begin()const {
return box_;
}
const_iterator end()const {
return box_ + n;
}
private:
Type box_[n];
};
int main() {
Array<int, 9> box = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
for (const auto value : box) std::cout << ' ' << value;
std::cout.put('\n');
for (auto &value : box) value *= 10;
for (const auto value : box) std::cout << ' ' << value;
std::cout.put('\n');
std::cout << ' ' << box[3] - 5 << '\n';
std::cin.get();
}
вы не указали язык.
Во многих языках можно передать массив в качестве аргумента без проблем. А где вдруг нельзя, там можно передать указатель на массив.
Во многих языках можно передать массив в качестве аргумента без проблем. А где вдруг нельзя, там можно передать указатель на массив.
Edo (Official Paghe)
Название вопроса
можно написать copy constructor и move constructor, также советую почитать про variadic templates http://www.stroustrup.com/C++11FAQ.html#variadic-templates
template < typename T>
q_array< T>::q_array(const vector< T> &other) {
// assign
}
template < typename T>
q_array< T>::q_array(vector< T> &&other) noexcept {
// use std::move
}
template < typename T>
q_array< T>::q_array(const vector< T> &other) {
// assign
}
template < typename T>
q_array< T>::q_array(vector< T> &&other) noexcept {
// use std::move
}
Edo (Official Paghe)
Я не хочу пользоваться вектором, т. к. пишу его мини прототип)
Похожие вопросы
- С++. Как сделать, чтобы значение массива, созданного в структуре изменялось в другой процедуре?
- Как можно передать ДВУМЕРНЫЙ массив в функцию в С++, не создавая его, как глобальный. Пример ниже:
- Каким образом в c++ можно передать двумерный массив в фунцкию?
- Массив как аргумент функции C++
- Помогите с паскалем! Как значение массива в 1000 элементов перенести в файл?
- Для аргумента x, изменяющегося от –0.6 с шагом 0.05 вычислить 20 значений функций.
- Напишите программу, которая находит в массиве количество элементов, равных заданному значению X .
- С++, заполнение массива рандомными значениями.
- 1. Написать программу, которая заполняет массив целых чисел размеров 20 элементов значениями роста учащихся (случайные ч
- В каждой из задач данного раздела заданы два массива случайных значении