remplissage d'un coup de pouce vecteur ou d'une matrice
Est-il une seule façon, l'expression d'attribuer un scalaire à tous les éléments d'un coup de pouce de la matrice ou du vecteur? J'essaie de trouver une façon plus compacte de représenter:
boost::numeric::ublas::c_vector<float, N> v;
for (size_t i=0; i<N; i++) {
v[i] = myScalar;
}
Suivantes ne fonctionnent pas:
boost::numeric::ublas::c_vector<float, N>
v(myScalar, myScalar, ...and so on..., myScalar);
boost::numeric::ublas::c_vector<float, N> v;
v = myScalar;
- Vous devez également appeler cela "C++".
Vous devez vous connecter pour publier un commentaire.
Parce que le vecteur des modèles standard d'accès aléatoire conteneur, vous devriez être en mesure d'utiliser la norme algorithmes de la STL. Quelque chose comme:
ou
Il probablement est également compatible avec les Boost.Attribuer mais vous auriez à vérifier.
boost::numeric::ublas::matrix
J'ai commencé à utiliser
boost::assign
pour les cas que je veux affecter de manière statique de valeurs spécifiques (exemples levé à partir du lien ci-dessus).Vous pouvez également utiliser
boost::assign
pour les cartes.Vous pouvez vous permettre de faire l'affectation directe avec
list_of()
etmap_list_of()
Il existe aussi des fonctions pour
repeat()
,repeat_fun()
, etrange()
qui permet d'ajouter de répéter des valeurs ou des plages de valeurs.La manière recommandée ressemble à ceci:
La en est de même pour la matrice types:
Avez-vous essayé ceci?
ublas::c_vector v = ublas::scalar_vector(N, myScalar);
Été un moment depuis que j'ai utilisé le C++. Réalise les travaux suivants?