vector可以存入哪些数据类型
时间: 2023-07-25 21:44:24 浏览: 117
在 C++ 中,`vector` 可以存储各种数据类型,包括内置类型(如整数和浮点数)、自定义结构体、类和指针等。以下是一些常见的数据类型,可以存储在 `vector` 中:
- 内置类型:包括 `int`、`float`、`double`、`char` 等。
- 自定义结构体:可以使用 `struct` 或 `class` 关键字定义自己的结构体,例如:
```
struct Point {
int x;
int y;
};
```
- 类:可以使用 `class` 关键字定义类,例如:
```
class Person {
public:
string name;
int age;
};
```
- 指针:可以存储指向任何类型的指针,例如:
```
int* ptr = new int(10);
vector<int*> vec = {ptr};
```
需要注意的是,存储在 `vector` 中的对象通常会被复制或移动。因此,如果存储的对象包含指针或其他资源,需要特别小心,以确保正确地管理它们。可以使用智能指针或其他资源管理类来确保资源安全释放。
相关问题
vector可以存入结构体吗
是的,`vector` 可以存储结构体(struct)类型的数据。结构体是一种自定义的数据类型,可以包含多个不同类型的数据成员。以下是一个示例结构体类型:
```
struct Person {
string name;
int age;
};
```
可以使用 `vector` 来存储多个 `Person` 类型的数据:
```
vector<Person> persons;
persons.push_back({"Alice", 25});
persons.push_back({"Bob", 30});
```
以上代码将创建一个 `vector` 对象 `persons`,并向其中添加两个 `Person` 类型的数据。可以使用类似数组的语法来访问 `vector` 中的元素,例如:
```
cout << persons[0].name << " is " << persons[0].age << " years old." << endl;
```
输出结果为:`Alice is 25 years old.`
需要注意的是,向 `vector` 中添加结构体类型的数据,会触发结构体的默认构造函数和复制构造函数。如果结构体类型包含指针或其他资源,需要特别小心,以确保正确地管理它们。可以使用智能指针或其他资源管理类来确保资源安全释放。
c++中double数据存入vector
在C++中,可以使用vector容器来存储double类型的数据。可以使用以下方法将double数据存入vector中:
vector<double> vec; //定义一个存储double类型数据的vector
vec.push_back(1.23); //将1.23存入vector中
vec.push_back(4.56); //将4.56存入vector中
//使用循环遍历vector中的元素
for(int i=0; i<vec.size(); i++){
cout << vec[i] << " ";
}
//输出结果为:1.23 4.56
需要注意的是,vector容器中的元素可以通过下标访问,也可以使用迭代器进行访问。同时,vector容器还提供了很多其他的操作方法,如插入、删除、排序等,可以根据具体需求进行使用。