在向量C++中查找最后定义的元素
Find Last Defined Element in Vector C++
我正在尝试在C++向量中获取最后一个定义的元素,但是vector::capacity和vector::size都只是给了我最大大小。例如:
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]
我尝试过使用 vector::end() 和类似的方法,但我无法获取最后一个元素的索引。
当你调用reserve(MAX_SIZE)
时,你会改变容量,所以输出100
应该是它应该的样子。您打印出值的循环实际上遍历了所有 100 次,但所有剩余的字符都