Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
 Аватар для Taras_Z
102 / 86 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2

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

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

Студворк — интернет-сервис помощи студентам
Есть вектор(STL) элементов. У меня есть указатель на определенный элемент. Я хочу сделать так, чтобы после сортировки этого вектора указатель показывал на тот же элемент, а не на элемент, который стоит на месте прошлого. Как это можно сделать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.02.2014, 14:10
Ответы с готовыми решениями:

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

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

Есть код с формулой ИМТ, нужно сделать так чтобы MessageBox правильно показывал сообщение
private void button1_Click(object sender, EventArgs e) { double imt =...

3
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 35
05.02.2014, 14:17
Не уверенна, что сработает, но если так
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
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
06.02.2014, 20:41
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
Эксперт С++
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
06.02.2014, 20:56
Цитата Сообщение от Taras_Z Посмотреть сообщение
У меня есть указатель на определенный элемент. Я хочу сделать так, чтобы после сортировки этого вектора указатель показывал на тот же элемент, а не на элемент, который стоит на месте прошлого. Как это можно сделать?
Запомнить значение элемента, отсортировать вектор, найти в нём элемент с этим значением, установить указатель на найденный элемент.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.02.2014, 20:56
Помогаю со студенческими работами здесь

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

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

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

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

Программу сортировки нужно переделать так, чтобы она содержала процедуры
следующую программу сортировки нужно переделать так, чтобы она содержала процедуры uses crt; const n = 10; var a : array of integer; ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Основы OpenGL 3.3 и Qt 6.9. Трансформированный треугольник
8Observer8 27.06.2025
На русском https:/ / rutube. ru/ video/ e424497dd6b7ae7e11494027c4b31a54/ https:/ / vkvideo. ru/ video-231040171_456239019 https:/ / www. youtube. com/ watch?v=mfD-ZL7wa_4 Bastyon
Федерация аутентификации на основе JWT-токенов с Keycloak и .NET в гетерогенных инфраструктурах
ArchitectMsa 27.06.2025
Тот самый момент, когда впервые столкнулся с проблемой интеграции десятка разрозненных систем аутентификации в одной корпоративной экосистеме. Кажый сервис жил своей жизнью - тут Basic Auth, там. . .
Гайд по современным СУБД (небесспорный)
Codd 26.06.2025
Когда я только начинал свой путь в IT как рядовой программист, база данных казалась мне чем-то простым и понятным. Ну, серьезно — это же просто место, где лежат данные, верно? Напиши SELECT * FROM. . .
Использование C# с AWS S3: Примеры с AWS SDK для .NET
stackOverflow 26.06.2025
Amazon S3 (Simple Storage Service) уже давно стал стандартом де-факто в мире облачного хранения данных. Особенно приятно, что для разработчиков . NET предусмотрен отличный SDK, который значительно. . .
Веб-автоматизация с Python и Selenium
AI_Generated 25.06.2025
Selenium с Python — это комбинация, которая выдержала проверку временем. Несмотря на появление новых инструментов вроде Playwright или Puppeteer, связка Python-Selenium остаётся золотым стандартом. . .
CQRS и Event Sourcing на C#
ArchitectMsa 25.06.2025
За последние несколько лет сложность корпоративных приложений выросла в геометрической прогрессии. Простые монолитные системы уступили место распределенным микросервисам, а нагрузка на корпоративные. . .
Хак домофона или как открыть дверь по номеру
yariko 25.06.2025
Забыли дома ключ. Не проблема. Можно открыть дверь домофона, просто позвонив на свой номер квартиры. Идея состоит в следующем. Внутрь трубки абонента встраивается контроллер, который по звонку сам. . .
Как украсить новогоднюю елку с Q# и Qiskit
EggHead 24.06.2025
Что может быть необычнее, чем применить законы квантовой механики для украшения новогодней елки? Пока другие развешивают обычные гирлянды, я решил объединить свою страсть к квантовым вычислениям с. . .
Системы нулевого доверия на C#
UnmanagedCoder 24.06.2025
Традиционная архитектура безопасности работает по принципу средневекового замка: создаём высокие стены вокруг корпоративной сети, укрепляем ворота межсетевыми экранами и системами обнаружения. . .
Снова не мой путь. Циклическое среднее, я обеими руками за проверку условия, в ракурсе данной задачи - циклическое среднее в топку.
Hrethgir 24.06.2025
Привет. Такой вопрос - нужно выводить среднее математическое между двумя направлениями, интервал значений которых может лежать в диапазоне одного оборота по кругу. Проблема заключается в том, что. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
OSZAR »