Я пытаюсь получить последний определенный элемент в векторе C++, но как вектор :: емкость, так и вектор :: размер просто дают мне максимальный размер. Например:Найти последний заданный элемент в Vector C++
int main() {
char* array = new char[MAX_SIZE]; //MAX_SIZE is a const int equaling 100
std::cout << "Enter in a number: ";
std::cin >> array;
std::vector<char> cVector;
cVector.reserve(MAX_SIZE);
cVector.assign(array, array + MAX_SIZE);
for (std::vector<char>::const_iterator i = cVector.begin(); i != cVector.end(); ++i)
{
std::cout << *i;
}
std::cout << std::endl;
std::cout << "Size: " << cVector.size() << std::endl;
std::cout << "Actual size: " << cVector.capacity() << std::endl;
}
Примера вывод:
Enter in a number: 55
55
Size: 100
Actual size: 100 [Should say 2]
Я попытался с помощью вектора :: конца() и аналогичных методов, но нет никакого способа для меня, чтобы получить индекс последнего элемента.
код делает то, что он должен делать. Что вы подразумеваете под последним определенным элементом? Вы строите 'cVector' с размером' MAX_SIZE'. И почему бы вам просто не использовать 'std :: string'? –
Приношу свои извинения. Первоначально я использовал динамический массив и определил его заполнение, но позже изменил его на обычный массив. Я исправлю это сейчас. – user3288091
Зачем нужен фактический размер 2? – smac89