Как я храню массивы в списке STL?

Я понял это! Вот обновленный фрагмент кода, который теперь содержит рабочие инструкции. Я оставлю этот пост на случай, если он кому-нибудь поможет.

.data
     output1: .asciiz "The value in $t1 is: "
.text
     add $t0, $t0, 2   # shifts the string left by 2 bits (CORRECT) 
     li $v0, 4
     la $a0, output1
     syscall           # print "The value in $t1 is: "
     li $v0, 4
     move $a0, $t1
     syscall           # print the contents of the register $t1
12
задан Steven Bedrick 5 May 2009 в 21:14
поделиться

4 ответа

Вы не можете хранить массивы в контейнерах STL. Вы бы использовали вектор векторов или что-то подобное для общего случая. В вашем конкретном случае я бы использовал вектор std :: pair, например: std :: vector > . std :: pair - это класс, который имеет два члена, first и second , любого типа, которым вы его шаблонизируете.

Редактировать: I первоначально было как std :: vector > , но я не был уверен, был ли он перегружен для приема только 1 параметра в случае, когда оба типа одинаковы ... небольшое копание не нашло доказательств этого, поэтому я изменил его, чтобы явно указать, что оба первый и второй являются int s.

9
ответ дан 2 December 2019 в 03:16
поделиться

Вещи, хранящиеся в контейнере стандартной библиотеки, должны быть назначаемыми и копируемыми - массивы не являются ни. Лучше всего создать список std :: vector. Кроме того, вы можете обернуть массив в структуру:

struct A {
   int array[2];
};

std::list <A> alist;
24
ответ дан 2 December 2019 в 03:16
поделиться

Это хорошая ситуация для использования boost :: array вместо "классических" массивов в стиле C. Это должно работать:

std::list<boost::array<int,2> > my_list;
boost::array<int,2> foo={{1,2}};
my_list.push_back(foo);
7
ответ дан 2 December 2019 в 03:16
поделиться

Я бы предложил вам использовать std :: pair для хранения значений в этом случае. Он находится в
<утилита> .

Вы можете хранить указатели на массивы в списке, но тогда вам придется иметь дело со всем управлением памятью. Использование пары намного проще, если вам нужны пары значений.

5
ответ дан 2 December 2019 в 03:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: