Помощь - Поиск - Пользователи - Календарь
Полная версия: STL
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Fanat
Надо написать функцию Y.Которая будет возвращать 1.
И вызываться будет X.Y , где X это вектор. То есть если правильно понимаю создать свой метод.
Как это сделать?
volvo
Наследоваться от std::vector, и добавлять нужную тебе функциональность:

#include <iostream>
#include <vector>

using namespace std;

template <class T>
class myVector: public vector<T> {
public:
int Y() {
return 1;
}
};

int main()
{
myVector<int> v;

v.push_back(10); // работают как методы vector-а
cout << v.Y() << endl; // так и добавленная функция...

getch();
return 0;
}

Fanat
А как внутри этой функции обратиться к итератору на начало,на конец?..

(Извиняюсь что в эту же тему, почему может не работать Form1->Image1->Canvas->Refresh()?)
volvo
Цитата
как внутри этой функции обратиться к итератору на начало,на конец?

template <class T>
class MyVector : public std::vector<T>
{
public:

int Y()
{
int count = 0;

for(const_iterator i = begin(); i != end(); ++i)
{
count += 1;
}
return count;
}
};


Цитата
почему может не работать
Что подразумевается под "работой"? Что должен делать метод Canvas::Refresh() знаешь?
Fanat
Спасибо.

Цитата(volvo @ 6.10.2007 17:56) *

Что подразумевается под "работой"? Что должен делать метод Canvas::Refresh() знаешь?


Я думаю что он должен очищать Canvas. Это я и подразумеваю под его работой. smile.gif
volvo
Цитата(BDS 2006 Help)
TCanvas::Refresh Method
Deselects the Pen, Brush, and Font from the device context.
Ничего про очистку... А очищать канву:

...
Image1->Canvas->Brush->Color = clWindow;
Image1->Canvas->FillRect(Image1->ClientRect);
...


(Все-таки, задавай вопросы по другой теме в отдельном топике, а то свалка начнется...)
Fanat
Цитата(volvo @ 6.10.2007 18:33) *

Ничего про очистку... А очищать канву:

...
Image1->Canvas->Brush->Color = clWindow;
Image1->Canvas->FillRect(Image1->ClientRect);
...


(Все-таки, задавай вопросы по другой теме в отдельном топике, а то свалка начнется...)


Спасибо большое.
(Хорошо)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.