Здраствуйте!
Есть некая функция,
void SomeFunc(int* someArray,size_t arraySize);
Очень хочеться работать с параматров someArray как с std::vector<int> контейнером.
например, так
std::vector<int> _someArray;
// Далее осущствить связыание с массивом someArray
// НО! Данные массива при этом не копировать!
...
(*_someArray.begin()) - // Доступ к someArray[0]
// и так далее....
заранее спасибо!
Здравствуйте, GhostCoders, Вы писали:
GC> (*_someArray.begin()) — // Доступ к someArray[0]
struct {
int* a;
int* b;
size_t size() { return b - a; }
int* begin() { return a; }
int* end() { return b; }
int& operator[](size_t index) { return a[index]; }
// ... допиши сам ...
} _someArray = { someArray, someArray + arraySize };
Здравствуйте, GhostCoders, Вы писали:
GC>Здраствуйте!
GC>Есть некая функция,
GC>GC>void SomeFunc(int* someArray,size_t arraySize);
GC>
GC>Очень хочеться работать с параматров someArray как с std::vector<int> контейнером.
GC>например, так
GC>GC> std::vector<int> _someArray;
GC> // Далее осущствить связыание с массивом someArray
GC> // НО! Данные массива при этом не копировать!
GC> ...
GC> (*_someArray.begin()) - // Доступ к someArray[0]
GC> // и так далее....
GC>
GC>заранее спасибо!
Можешь взять за основу Boost.Array и добавить возможность присваивания ему внешних массивов.
Здравствуйте, GhostCoders, Вы писали:
GC>Здраствуйте!
GC>Есть некая функция,
GC>GC>void SomeFunc(int* someArray,size_t arraySize);
GC>
GC>Очень хочеться работать с параматров someArray как с std::vector<int> контейнером.
Можно использовать
boost::iterator_range:
#include <boost/range.hpp>
//...
void
SomeFunc(int* someArray, size_t arraySize)
{
boost::iterator_range<int*> r =
boost::make_iterator_range(someArray, someArray + arraySize);
//...
}