如何输入一个vector c++
时间: 2023-12-01 22:42:10 浏览: 42
以下是两种C++输入vector的方法:
1.使用cin输入vector
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> nums;
int i;
while (cin >> i) {
nums.push_back(i);
if (cin.get() == '\n') break;
}
for (auto e : nums) cout << e << " ";
return 0;
}
```
2.使用getline输入vector
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
string str;
vector<string> nums;
while (getline(cin, str)) {
nums.push_back(str);
if (str[str.size() - 1] == '\0') break;
}
for (auto e : nums) cout << e << " ";
return 0;
}
```
相关问题
c++中定义一个 vector
在C++中,可以使用标准库中的vector来定义一个动态数组。vector是一个模板类,可以存储任意类型的元素,并且可以根据需要自动调整大小。
要定义一个vector,首先需要包含<vector>头文件。然后可以使用以下语法来定义一个vector对象:
```cpp
#include <vector>
// 定义一个存储整数的vector
std::vector<int> myVector;
// 定义一个存储字符串的vector
std::vector<std::string> myStringVector;
```
在上述代码中,`std::vector<int>`定义了一个存储整数的vector对象,而`std::vector<std::string>`定义了一个存储字符串的vector对象。
可以通过以下方式向vector中添加元素:
```cpp
myVector.push_back(10); // 向myVector中添加整数10
myStringVector.push_back("Hello"); // 向myStringVector中添加字符串"Hello"
```
可以使用下标运算符或迭代器来访问vector中的元素:
```cpp
int firstElement = myVector[0]; // 获取myVector中的第一个元素
std::string secondElement = myStringVector.at(1); // 获取myStringVector中的第二个元素
```
还可以使用size()函数获取vector中的元素数量:
```cpp
int size = myVector.size(); // 获取myVector中的元素数量
```
需要注意的是,vector会自动调整大小以适应添加的元素数量,因此不需要手动指定大小。
C++实现一个vector
好的,我可以向您展示如何实现一个简单的vector类。
首先,我们需要定义一个类:
```c++
template <typename T>
class Vector {
private:
T* arr;
int size;
int capacity;
public:
Vector();
~Vector();
void push_back(T val);
void pop_back();
T& operator[](int index);
int getSize();
int getCapacity();
};
```
其中,arr是指向存储元素的数组的指针,size表示当前元素的数量,capacity表示当前数组的容量。
接下来,我们需要实现每个函数:
```c++
template <typename T>
Vector<T>::Vector() {
arr = new T[1];
size = 0;
capacity = 1;
}
template <typename T>
Vector<T>::~Vector() {
delete[] arr;
}
template <typename T>
void Vector<T>::push_back(T val) {
if (size == capacity) {
T* temp = new T[capacity * 2];
for (int i = 0; i < size; i++) {
temp[i] = arr[i];
}
delete[] arr;
arr = temp;
capacity *= 2;
}
arr[size] = val;
size++;
}
template <typename T>
void Vector<T>::pop_back() {
if (size > 0) {
size--;
}
}
template <typename T>
T& Vector<T>::operator[](int index) {
return arr[index];
}
template <typename T>
int Vector<T>::getSize() {
return size;
}
template <typename T>
int Vector<T>::getCapacity() {
return capacity;
}
```
这些函数实现了向vector添加元素、删除元素、访问元素以及获取vector大小和容量的功能。
现在,您可以使用该类来创建一个vector对象并开始添加、删除和访问元素了!
请注意,这只是一个简单的实现,实际上STL vector类包含了更多功能和优化。