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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.62
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
#1

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

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

Делаю задание Страуструпа на шаблоны, но столкнулся с тем что передавая вектор по ссылке он передаётся не по ссылке (такая вот тавтология).
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
}
Собственно в коде я показал лишь сравнение одного элемента, не усложняя код остальными тонкостями так что на названия функций не обращаем внимание.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2011, 19:14     Передача вектора по ссылке
Посмотрите здесь:

C++ Передача массива по ссылке
C++ передача параметров по ссылке
C++ Передача по ссылке
Передача по указателю и по ссылке C++
Передача параметра по ссылке C++
C++ Передача по ссылке
Передача по ссылке C++
C++ Enum передача по ссылке
C++ Передача вектора в функцию по ссылке
Передача массива по ссылке C++
C++ Передача указателя по ссылке
C++ Передача вектора по ссылке

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Форумчанин
Эксперт С++
4470 / 2832 / 224
Регистрация: 12.12.2009
Сообщений: 7,202
Записей в блоге: 1
Завершенные тесты: 1
10.10.2011, 19:19     Передача вектора по ссылке #2
Так ты ж элемент массива выводишь, а не вектора. Он то с чего меняться должен?
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
10.10.2011, 19:25  [ТС]     Передача вектора по ссылке #3
Kastaneda, тьфу, точно, вот такие глупые ошибки обиднее всего, я так на кр по с++ на одном тесте вот так затупил и уже фиг а не 100% правильных ответов.
Kastaneda
Форумчанин
Эксперт С++
4470 / 2832 / 224
Регистрация: 12.12.2009
Сообщений: 7,202
Записей в блоге: 1
Завершенные тесты: 1
10.10.2011, 19:26     Передача вектора по ссылке #4
Gepar, бывает
Yandex
Объявления
10.10.2011, 19:26     Передача вектора по ссылке
Ответ Создать тему
Опции темы

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