c++ - Vector c типом класс с++


1

Пытаюсь сделать вектор с типом класса MyClass. Почему функции v.size() и v.capacity() работают нормально, а v.pop_back() и v.front() не работают? Не выводит ничего после запуска программы.

class MyClass
{
public:
MyClass(int x = 1) : xp(x) {}

int x() const { return xp; }
private:
int xp;
};

int main()
{

setlocale(LC_ALL, "Russian");
vector<MyClass> v {7, 9, 8};
cout << "ntВектор с пользовательским типом данных";
cout << "ntСодержимое вектора: "; 
for (const auto& f : v) {
    cout << f.x() << std::endl;
}
cout << "tsize(): " << v.size() << endl;
cout << "tcapacity(): " << v.capacity() << endl;
cout << "ntЭлемент с индексом 1 - > " << endl;
v.pop_back();
cout << "ntПервый элемент в векторе: " << endl;
v.front();
}
Источник
  •  74
  •  2
  • 15 янв 2018 2018-01-15 18:43:13

2 ответа

1

Примерно так:

cout << "ntЭлемент с индексом 1 - > " << v[1] << endl;
cout << "ntПервый элемент в векторе: " << v.front() << endl;
  • 15 янв 2018 2018-01-15 18:42:48
1

Функция pop_back удаляет элемент молча, и ничего не возращает. А функция front возвращает ссылку на первый элемент. Стиль языка C : нет просьбы что-то напечатать, не буду.

  • 11 янв 2018 2018-01-11 09:52:18