2011-01-08 4 views
0

Мне нужен контейнер (например, массив) для целых чисел таким образом, что при заданных x и y и z, которые должны быть вставлены между x и y, можно будет вставить z между ними. x и y, get, если x помещен слева в y.Контейнер, необходимый для C++

+2

Какое правило определяется, что 'z' должно быть помещено между' x' и 'y'? –

+0

А, я думаю, теперь я понимаю. В основном вы хотите поместить элементы в произвольном порядке, а затем вы хотите быстро спросить, '' 'перед' b'? Итак, последовательность элементов определяет и упорядочивает, что может использоваться для сравнения элементов? – sth

+0

Это домашнее задание? –

ответ

1

Ну вы могли бы использовать std::set<int>. Он всегда будет хранить ваши элементы.

1

Ну, используйте вектор.

Нечто подобное.

vector<int> v; 
v.push_back(x); 
v.push_back(y); 
vector<int> :: iterator it = v.begin(); 
v.insert(it + 1, z); 

Посмотрите здесь: http://www.cplusplus.com/reference/stl/vector/insert/

+0

Если у меня есть вектор размером 100. И если заданы x, y и z, это будет эффективно не вставлять z таким образом .... Потому что мне нужно будет бежать, пока я не найду итератор на x-it. И только затем сделайте insert-insert (it + 1, z) – Yakov

Смежные вопросы