سؤال

أنا أستخدم QT 4.5 وأعمل مع أ QList<QStringList> وهي قائمة قائمة السلسلة.

الآن أريد استبدال سلسلة واحدة داخل قائمة سلسلة واحدة ولكن يبدو من غير المعتاد الكتابة. لقد وجدت الطريقة التالية للقيام بذلك وكنت أتساءل عما إذا كان الأمر على ما يرام:

QList <QStringList> pDataList;

pDataList[listIndex].replace(QStringIndex, newString);

الآن ، لست قلقًا بشأن بناء الجملة ، لكني أريد أن أعرف إذا pDataListمؤشراتها مجاورة في الذاكرة بحيث لا بأس في الاستخدام []. هل هناك طريقة أخرى للقيام بذلك؟

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

المحلول

قضية pDataListإن العناصر المجاورة في الذاكرة لا تتعلق بسؤال ما إذا كان من الجيد الاستخدام operator[].

على العموم، QList<> لا تضمن أن عناصرها مجاورة في الذاكرة ، ولكنها لا تحمل الزائد operator[] لإعطائك العنصر الذي تبحث عنه رغم ذلك.

الشيء الوحيد الذي يجب أن تقلقه عند القيام بشيء كهذا هو التأكد من ذلك (pDataList.size() < listIndex). خلاف ذلك ، ستقوم بفهرسة عناصر ليس في القائمة ، مما يؤدي إلى استثناء في تصحيح الأخطاء أو السلوك غير المحدد في الإصدار.

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