مرنة-حجم arma ناقلات تخصيص صحيح في العامة أو خاصية Rcpp?

StackOverflow https://stackoverflow.com//questions/23044537

  •  21-12-2019
  •  | 
  •  

سؤال

أنا باستخدام Rcpp الحزمة إلى كتابة التعليمات البرمجية التي قد الرئيسي نسبة مكتوب في C++ و نسبة أقل في ر.

بناء على ما عرفت من C++, كل على عكس R ، كل المتغيرات في C++ يجب أن تعلن مقدما وهذا الإعلان يتضمن كل نوع وحجم.فعلى سبيل المثال عندما نقول:

arma::vec test(2);

ثم أفترض الاختبار المدرع ناقلات مع حجم 2 مما يعني أننا لا ينبغي أن تعيين أي شيء من حجم مختلف لاختبار.هل هذا صحيح ؟

هنا هو بلدي التحدي:

في قانون بلدي لدي حلقة التي يعين ناقلات مختلفة الحجم (عادة أكبر من 2) "اختبار ناقلات" دون redeclaration من الاختبار .لدهشتي, الكود يعمل بشكل جيد تماما دون أي تجميع خطأ !

في كل التكرار هنا هو كيف يمكنني تعيين ناقلات جديدة لاختبار:

test = Rcpp::as<arma::vec>(myList["aVecFromMyList"]);

السؤال:

هو أن المدرع ميزة نتمكن من تعيين ناقلات من أطوال مختلفة لاختبار والتي هي في البداية أعلن أن حجم 2 ؟ أو انها Rcpp حزمة الميزة ؟

شكرا جزيلا على مساعدتكم.

هل كانت مفيدة؟

المحلول

أنت تسأل عن حجم ناقلات في أن يتم تشفيرها في نوع.عند تحديد هذا شيء هو من نوع arma::vec, أنت تسمح له أن يقبل arma::vecs من أي حجم.

إذا كنت ترغب في فرض حجم القيد في نوع إذا كنت تريد شيئا مثل arma::vec::fixed<N>, حيث في حالة N سيكون 2.هذا هو النوع الذي يفرض القيد أن ناقلات يجب أن يكون حجم N.هناك أيضا typedefs منخفضة أرقام الإصدارات من هذه ، على سبيل المثال vec2 كما ثابت متجه من حجم 2.

سيكون لديك لتعديل as دعوة وبالمثل وأعتقد -- نأمل أن يعمل ، لم أجربها.

يجب عليك قراءة المدرع مستندات;المدرعة مستندات ربما بعض من أنظف وأكثر فائدة من هناك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top