「文字⇒数値」はatofでいいわ

sstreamのstringstream使えばいいんだろうけど、こっちの方がタイプ量的に楽。
あとはboost::lexical_cast使えないちゃんの時のために。

#include <iostream>
#include <vector>
#include <algorithm>
//文字列⇒小数の変換ファンクタ
struct ToDouble{double operator()(std::string x){return ::atof(x.c_str());}};
//表示用のファンクタ
struct Show{void operator()(double x){std::cout << x << std::endl;}};

int main()
{
    //適当な数値文字列
    std::vector<std::string> x;
    x.push_back("10.13");
    x.push_back("-97.13");
    x.push_back("-5");
    x.push_back("123");
    //double型のベクターへ変換
    std::vector<double> y(x.size());
    std::transform(x.begin(), x.end(), y.begin(), ToDouble());
    //結果表示
    std::for_each(y.begin(), y.end(),Show());
    return 0;
}

結果(ちゃんと数値になってる)

10.13
-97.13
-5
123