Scilab: improve STL vector example (test all argument passing modes)

This commit is contained in:
Simon Marchetto 2013-06-20 18:21:23 +02:00
commit d1beaef1ba
4 changed files with 36 additions and 20 deletions

View file

@ -2,6 +2,10 @@
#include "example.hxx"
#include <iterator>
#include <iostream>
#include <algorithm>
// double vectors
std::vector<double> create_dvector(const int size, const double value)
@ -9,19 +13,19 @@ std::vector<double> create_dvector(const int size, const double value)
return std::vector<double>(size, value);
}
double sum_dvector(const std::vector<double> dvector)
double sum_dvector(const std::vector<double> in_dvector)
{
double sum = 0;
for (int i = 0; i < dvector.size(); i++)
for (int i = 0; i < in_dvector.size(); i++)
{
sum += dvector[i];
sum += in_dvector[i];
}
return sum;
}
void concat_dvector(std::vector<double>& dvector, const std::vector<double> other_dvector)
void concat_dvector(std::vector<double>& inout_dvector, const std::vector<double>& in_dvector)
{
dvector.insert(dvector.end(), other_dvector.begin(), other_dvector.end());
inout_dvector.insert(inout_dvector.end(), in_dvector.begin(), in_dvector.end());
}
// int vectors
@ -31,19 +35,19 @@ std::vector<int> create_ivector(const int size, const int value)
return std::vector<int>(size, value);
}
int sum_ivector(const std::vector<int> ivector)
int sum_ivector(const std::vector<int> in_ivector)
{
int sum = 0;
for (int i = 0; i < ivector.size(); i++)
for (int i = 0; i < in_ivector.size(); i++)
{
sum += ivector[i];
sum += in_ivector[i];
}
return sum;
}
void concat_ivector(std::vector<int>& ivector, const std::vector<int> other_ivector)
void concat_ivector(std::vector<int>& inout_ivector, const std::vector<int>& in_ivector)
{
ivector.insert(ivector.end(), other_ivector.begin(), other_ivector.end());
inout_ivector.insert(inout_ivector.end(), in_ivector.begin(), in_ivector.end());
}
// string vectors
@ -53,7 +57,13 @@ std::vector<std::string> create_svector(const int size, const char* value)
return std::vector<std::string>(size, value);
}
void concat_svector(std::vector<std::string>& svector, const std::vector<std::string> other_svector)
void print_svector(const std::vector<std::string> in_svector)
{
svector.insert(svector.end(), other_svector.begin(), other_svector.end());
std::copy(in_svector.begin(), in_svector.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
}
void concat_svector(std::vector<std::string>& inout_svector, const std::vector<std::string>& in_svector)
{
inout_svector.insert(inout_svector.end(), in_svector.begin(), in_svector.end());
}