Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Taras_Z
101 / 85 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
1

Сделать так, чтобы после сортировки вектора указатель показывал на тот же элемент, что и до сортировки

05.02.2014, 14:10. Просмотров 418. Ответов 3
Метки нет (Все метки)

Есть вектор(STL) элементов. У меня есть указатель на определенный элемент. Я хочу сделать так, чтобы после сортировки этого вектора указатель показывал на тот же элемент, а не на элемент, который стоит на месте прошлого. Как это можно сделать?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2014, 14:10
Ответы с готовыми решениями:

Сделать так, чтобы массив из метода использовался в обоих методах сортировки и не изменял своего значения
подскажите пожалуйста, как сделать так, чтобы массив из метода Metod использовался в обоих методах...

Как сделать так чтобы dbimage показывал файлы jpg?
я с помощью метода insertRecord добавляю картинку в dbimage но если он расширения jpg то он не...

Как css сделать так,что если в <img...> не указана картинка,то он показывал ту,которую я укажу?
Как с помощью css сделать так,что если в &lt;img...&gt; не указана картинка,то он показывал ту,которую я...

Изменить процедуру сортировки так, чтобы сортировка производилась по убыванию
изменить процедуру сортировки так, чтобы сортировка производилась по убыванию элементов.

Изменить процедуру сортировки так, чтобы сортировка производилась по убыванию
Изменить процедуру сортировки так, чтобы сортировка производилась по убыванию элементов. Помогите...

3
Тамика
Котовчанин
929 / 470 / 199
Регистрация: 16.02.2010
Сообщений: 3,305
Записей в блоге: 32
05.02.2014, 14:17 2
Не уверенна, что сработает, но если так
C++
1
2
3
4
5
6
7
8
struct marshrut {
...
};
std::vector <int, marshrut, less<int> > idmarsh_t;
static idmarsh_t marsmap;
...
int ownid = ...
const marshrut *m = &( marsmap[ ownid ] );
Видела когда-то на форуме такой вариант.
1
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7299 / 3555 / 486
Регистрация: 04.12.2011
Сообщений: 10,038
Записей в блоге: 5
06.02.2014, 20:41 3
Taras_Z, первое, что пришло в голову, включить в класс такой указатель и сделать доступ через вычисление:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <algorithm>
#include <vector>
 
using namespace std;
 
class Data_in_vec{
 
private:
Data_in_vec * data_in_vec;
 
public:
    Data_in_vec * get_self_ptr(){return this;}
    void set_self_ptr(Data_in_vec * ptr_){data_in_vec=ptr_;}
    bool operator<(const Data_in_vec& rhs){return data_i < rhs.data_i;}
 
Data_in_vec():data_i(0){data_in_vec=0;}
 
Data_in_vec(int n_i):data_i(n_i){data_in_vec=get_self_ptr();}
 
Data_in_vec(const Data_in_vec& rhs): data_i(rhs.data_i){data_in_vec=get_self_ptr();}
 
int data_i;
};
 
 
int main()
{
int arr[]={2,4,3,8,7,5,0,9};
 
    vector<Data_in_vec> vec;
    cout<<"By the index before sorting"<<endl;
    for(int i=0; i<8; ++i){
        vec.push_back(Data_in_vec(arr[i]));
cout<<vec[i].data_i<<" ";
    }
cout<<endl<<endl;
sort(vec.begin(), vec.end());
cout<<"By the index after sorting"<<endl;
for(int i=0; i<8; ++i){
cout<<vec[i].data_i<<" ";
    }
cout<<endl<<endl;
cout<<"By the pointer to itself"<<endl;
for(int i=0; i<8; ++i)cout<<(*(vec[i].get_self_ptr())).data_i<<" ";
cout<<endl<<endl;
system("pause");
return 0;
}
Хотя может и не понял вопрос.
0
Nick Alte
Эксперт С++
1653 / 1025 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
06.02.2014, 20:56 4
Цитата Сообщение от Taras_Z Посмотреть сообщение
У меня есть указатель на определенный элемент. Я хочу сделать так, чтобы после сортировки этого вектора указатель показывал на тот же элемент, а не на элемент, который стоит на месте прошлого. Как это можно сделать?
Запомнить значение элемента, отсортировать вектор, найти в нём элемент с этим значением, установить указатель на найденный элемент.
0
06.02.2014, 20:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2014, 20:56

Исследование методов сортировки(что не так?)
Составить алгоритм и разработать программу, реализующую быструю сортировку(обменная сортировка с...

Программу сортировки нужно переделать так, чтобы она содержала процедуры
следующую программу сортировки нужно переделать так, чтобы она содержала процедуры uses crt;...

Изменить алгоритм быстрой сортировки так, чтобы сортировалось от наименьшего к наибольшему
Здравствуйте! Есть программа сортировки случайных чисел в матрице методом быстрой сортировки....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru