Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу, которая вводит информацию и печатает самое распространенное женское имя http://www.cyberforum.ru/cpp-beginners/thread1089885.html
Прошу помощи, болит голова х) Задача: На основе таблицы, содержащей следующую информацию о группе студентов некоторого вуза (фамилия, имя, отчество, пол, возраст, курс) написать программу, которая...
C++ Несложный тест по Си++ (2014) Кто шарит в Си++ подскажите пожалуйста: http://www.cyberforum.ru/cpp-beginners/thread1089876.html
C++ Необходимо создать двумерный массив с количеством строк равным количеству полученных узлов xml документа.
Необходимо создать двумерный массив с количеством строк равным количеству полученных узлов xml документа. Что не правильно в данном коде? const int row_count = node_list->GetCount(); const int...
C++ Написать главную функцию программы, в которой бы вводилась простая матрица и выводилась обратная ей
Здравствуйте))) Есть код для функции программы, которая вычисляет обратную матрицу методом гаусса. Помогите пожалуйста написать основную главную функцию программы, в которой бы вводилась простая...
C++ Переполнение строки при считывании из файла http://www.cyberforum.ru/cpp-beginners/thread1089864.html
Считываю я строки из файла, в котором их 500 тысяч. Если строка начинается на R, то я записываю её в другой файл. Примерно на 312000-й строке мне выдаётся ошибка string subscript is out of range...
C++ Определить,содержит ли заданный массив группы простых элементов, и удалить вторую такую группу. Определить,содержит ли заданный массив группы простых элементов.Удалить из массива вторую группу таких элементов. Сначала я так понимаю ищем является ли число простым:затем ищем нахождение группы... подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6471 / 3119 / 306
Регистрация: 04.12.2011
Сообщений: 8,594
Записей в блоге: 4
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
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru