يتم إعطاؤك مقتطف تعليمات برمجية يقوم بتهيئة عدد صحيح ثابت `عدد صحيح` إلى 1 وحجم ثابت size_t `size` إلى القيمة الضيقة لـ `عدد صحيح` باستخدام الدالة `gsl::narrow`. كما يقوم أيضًا بإنشاء متجه باسم `vec` بالقيم 1 و2 و3 و4.

مهمتك هي كتابة دالة تأخذ متجهًا للأعداد الصحيحة والفهرس، وتقوم بإرجاع القيمة في الفهرس المحدد إذا كانت صالحة. إذا كان الفهرس خارج النطاق (أقل من 0 أو أكبر من أو يساوي حجم المتجه)، فيجب أن ترجع الدالة -1.

اكتب دالة بالتوقيع التالي:

```CPP
int getValueAtIndex(const std::vector<int>& vec, int Index);
```

**مدخل**
- تأخذ الدالة مرجعًا ثابتًا إلى متجه الأعداد الصحيحة `vec` (1 <= vec.size() <= 100)، حيث يتراوح كل عدد صحيح بين -1000 و1000.
- عدد صحيح `الفهرس` (-10^9 <= الفهرس <= 10^9).

**انتاج**
- قم بإرجاع القيمة إلى الفهرس المحدد إذا كانت صالحة.
- العودة -1 إذا كان الفهرس خارج النطاق.

**ملحوظة**
- قد تفترض أن متجه الإدخال `vec` لن يتغير أثناء تنفيذ الوظيفة.
- يجب أن تعمل الوظيفة في وقت ثابت.

**مثال**
```CPP
std::vector<int> vec{ 1, 2, 3, 4 };
getValueAtIndex(vec, 2); // الإخراج: 3
getValueAtIndex(vec, 0); // الإخراج: 1
getValueAtIndex(vec, 5); // الإخراج: -1
getValueAtIndex(vec, -1); // الإخراج: -1
```
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}