Working with C++ vectors passed via shared pointersThis is one way to work with smart pointers of the type std::shared_ptr
#include <cstdio>
#include <vector>
#include <memory>
void initialize(std::shared_ptr<std::vector<double>> x)
{
const int n=x->size();
for (int i=0;i<n;i++) (*x)[i]= 1.0/(double)(1+n-i);
}
{
for (int i=0;i<x->size();i++)sum+=(*x)[i];
}
{
const int n=12345678;
std::shared_ptr<std::vector<double>> x=std::shared_ptr<std::vector<double>>(new std::vector<double>(n));
printf("sum=%e\n",s);
return 0;
}