1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
1

Передача вектора по ссылке

10.10.2011, 19:14. Показов 6869. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Делаю задание Страуструпа на шаблоны, но столкнулся с тем что передавая вектор по ссылке он передаётся не по ссылке (такая вот тавтология).
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
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
 
template<typename T>
class Sort
{
    public:
    static bool compare(T& first, T& second){return first>=second; }
};
 
template<typename T,class S>
void Msort(vector<T>& tosort)
{
    if(S::compare(tosort[0],tosort[1]))
     swap(tosort[0],tosort[1]); //обмен удачно совершён, если попытаться вывести tosort[0] здесь то он =1
 
};
 
 
int main()
{
    int ar[5]={4,1,1,6,3};
    vector<int> my(ar,ar+5);
    Msort<int,Sort<int> >(my);
    cout<<ar[0]; //выводит 4, хотя должно вывести 1
}
Собственно в коде я показал лишь сравнение одного элемента, не усложняя код остальными тонкостями так что на названия функций не обращаем внимание.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2011, 19:14
Ответы с готовыми решениями:

Передача вектора по ссылке
Как передать в функцию вектор по ссылке/указателю, чтобы не происходило его постоянное копирование?

Передача вектора в функцию по ссылке
Здравствуйте. Как решить эту ошибку. Ошибка: In member function ‘void...

Передача по ссылке
С помощью функции rand() округлить значение double и передать его по ссылке.

Передача по ссылке
Здравствуйте. 1.typedef struct { MATRIXX_LENTA&lt;double&gt;* MATR; //Ленточная матрица }...

3
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,113
Записей в блоге: 2
10.10.2011, 19:19 2
Так ты ж элемент массива выводишь, а не вектора. Он то с чего меняться должен?
1
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
10.10.2011, 19:25  [ТС] 3
Kastaneda, тьфу, точно, вот такие глупые ошибки обиднее всего, я так на кр по с++ на одном тесте вот так затупил и уже фиг а не 100% правильных ответов.
0
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,113
Записей в блоге: 2
10.10.2011, 19:26 4
Gepar, бывает
0
10.10.2011, 19:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2011, 19:26
Помогаю со студенческими работами здесь

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

Enum передача по ссылке
Ребята, подскажите, как передать enum в функцию, что бы внутри функции установить значение. Точнее...

Передача по константной ссылке
void print(const std::string strs, const char c); void print(const std::vector&lt;std::string&gt;&amp;...

Передача параметров по ссылке
Стоит ли передавать все параметры (кроме скалярных и указателей) по сслыке? Т.е. вместо void ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru