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

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

Войти
Регистрация
Восстановить пароль
 
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
#1

Как вызвать метод из указателя на вектор пользовательского типа? - C++

08.12.2012, 14:36. Просмотров 542. Ответов 2
Метки нет (Все метки)

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
#include <iostream>
#include <vector>
#include <string>
using namespace std;
struct Client
{
    vector <string> login;
    vector <string> password;
    vector <int> access;
    void output()
    {
        for(int i=0; i<login.size(); i++)
        cout<<login[i]<<"\t"<<password[i]<<"\t"<<access[i]<<endl;
    }
};
int main(void)
{
    vector <Client> *c;
    c=new vector<Client>;
    string tempacc,temppas;
    int templvl;
    Client buf;
    cin>>tempacc; cin>>temppas; cin>>templvl;
    buf.login.push_back(tempacc);
    buf.password.push_back(temppas);
    buf.access.push_back(templvl);
    c->push_back(buf);
        cout<<"output:\n";
    c->output();
 
    return 0;
}
как вызвать output?
пишет output не является членом std::vector
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2012, 14:36     Как вызвать метод из указателя на вектор пользовательского типа?
Посмотрите здесь:

Вектор пользовательского типа данных - C++
Имеется класс: class Students { public: void set_name(string student_name) { name = student_name;...

Вектор пользовательского типа данных + наследование - C++
Доброго времени суток. Дело в чём: #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; class A { ...

Приведение типа указателя на метод - C++
Здравствуйте. Есть функция, принимающая void (*f)(), возможно ли использовать ее в классе, передавая ей не-static метод этого класса? ...

Как считать файлы в вектор, который содержится в объекте пользовательского класса? - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; #include &lt;fstream&gt; using namespace std; class email { private: ...

Как создать шаблон для пользовательского и встроенного типа? - C++
Есть перегруженные операторы класса: void String::operator=(const char *a){ //Перегрпуженный оператор присваивания для типа char* ...

Как создать элемент вектора пользовательского типа(класса)? - C++
Делаю змейку в консоли, а по сути тренируюсь с классами и векторами. Есть класс с конструктором который создает кусок змейки в...

Как заставить std::set хранить объекты пользовательского типа? - C++
Здравствуйте. Как заставить set хранить объекты некоторого класса или структуры? #include &lt;iostream&gt; #include &lt;iterator&gt; ...

Как привести объект пользовательского типа к заданному встроенному типу? - C++
Добрый вечер, у меня есть класс: ref class MessageClass { public: char *senderName; short sizeMessage; char *message;

Как правильно передать массив объектов пользовательского типа в функцию? - C++
Доброго всем, пишу впервые пишу огромную программу - игру и столкнулся с проблемой, которую так сам и не могу решить. Нужно передать массив...

Как сравнить два указателя типа char? - C++
char *p1; p1 = new char; p1 = &quot;qwert&quot;; char *p2; p2 = new char; p2 = &quot;zz&quot;; if(*p1==*p2) cout &lt;&lt; &quot;Равны! &quot;&lt;&lt; endl; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yekka
385 / 149 / 8
Регистрация: 12.05.2011
Сообщений: 450
08.12.2012, 15:15     Как вызвать метод из указателя на вектор пользовательского типа? #2
C++
1
2
3
    for (vector<Client>::iterator it = c->begin(); it != c->end(); ++it) {
        it->output();
    }
Добавлено через 10 минут
совершенно не ясно, кстати, зачем тебе вектор объектов типа Client, если в этом векторе у тебя хранится только один объект.

странно, что класс называется Client, хотя, очевидно, он предназначен для хранения данных не об одном клиенте, а о неопределенно большом их количестве.

также я не вижу причин, зачем ты вектор создаешь в куче, а не на стеке.

ну и еще ты забыл сделать delete
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
08.12.2012, 17:25  [ТС]     Как вызвать метод из указателя на вектор пользовательского типа? #3
Цитата Сообщение от yekka Посмотреть сообщение
C++
1
2
3
    for (vector<Client>::iterator it = c->begin(); it != c->end(); ++it) {
        it->output();
    }
Добавлено через 10 минут
совершенно не ясно, кстати, зачем тебе вектор объектов типа Client, если в этом векторе у тебя хранится только один объект.

странно, что класс называется Client, хотя, очевидно, он предназначен для хранения данных не об одном клиенте, а о неопределенно большом их количестве.

также я не вижу причин, зачем ты вектор создаешь в куче, а не на стеке.

ну и еще ты забыл сделать delete
мне надо передалать лабу из "дискреционная модель разграничения доступа" в "ролевую ..."
субъекты(клиенты) мне надо отнести к ролям.
сперва у меня логин,пароль,доступ были прямо в классе описане, и они и были субъектами в матрице
теперь надо субъектов объединить в роли, а роли должны отображаться в матрице.

и на одну роль может приходиться несколько субъектов, да и ролей может быть неизвестно сколько(будет считываться с файла)
я пока только попробовал реализовать эту идею, сейчас переделываю её в саму програму, переписывать пару сотен кода, геморооой

Добавлено через 2 часа 1 минуту
C++
1
2
3
4
5
6
ofstream ofst(FNAME_ROLE);
    for(vector<Client>::iterator it = c->begin(); it != c->end(); ++it)
            {
                copy(it->begin(), it->end(), ostream_iterator<Client>(ofst, " "));
                ofst<<endl;
            }
в чем ошибка? как это сохранить в файл?
Ответ Создать тему
Опции темы

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