27846


`const
std::array<char>`型で与えられた入力を、`Eigen::VectorXf`型に変換したかったのですが、Eigen::Mapなどを使っても、うまいことやる方法が見当たらず、結局  
`for(int i=0;i<arr.size();i++) vec(i) = arr[i];`  
としました。

あまりきれいなコードではないので、後学のため、よりスマートに書く方法があれば、ご教示下さい。


CC BY-SA 3.0
2016-07-25T07:56:47.490
27844
2016-07-25T11:39:26.063
12269
question
c++ c++11
const std::array<char>をEigen::VectorXfに変換する方法は？


`std::array<char>` 型から直接 `Eigen::VectorXf`
型への変換はできない様ですので、一旦、`std::vector<float>` 型へ変換する方法はどうでしょうか。

[code]

    const std::array<char, 4> arr = {'a', 'b', 'c', 'd'};
    
    std::vector<float> v(arr.data(), arr.data()+arr.size());
    Eigen::Map<Eigen::VectorXf> vec(v.data(), v.size());
    
    std::cout << vec << std::endl;
    =>    
     97
     98
     99
    100
    
[/code]

# スマートな方法とは言い難いですが。。


CC BY-SA 3.0
2016-07-25T11:39:26.063
27846
2016-07-25T11:39:26.063
27844
answer