多个对象作为vector的元素,调用某一个对象的数据成员
时间: 2024-04-08 13:28:31 浏览: 23
可以通过索引访问vector中的元素,然后通过对象的成员访问符来调用特定对象的数据成员。以下是一个示例代码:
```cpp
#include <iostream>
#include <vector>
class MyObject {
public:
int data;
MyObject(int d) : data(d) {}
};
int main() {
std::vector<MyObject> objVector;
objVector.push_back(MyObject(1));
objVector.push_back(MyObject(2));
objVector.push_back(MyObject(3));
// 访问第二个对象的数据成员
std::cout << objVector[1].data << std::endl;
return 0;
}
```
在上述代码中,我们创建了一个存储`MyObject`对象的vector `objVector`。然后,我们使用`push_back`函数向vector中添加了三个对象。接下来,我们通过索引`objVector[1]`访问第二个对象,然后使用成员访问符`.`来访问其数据成员`data`并输出到控制台。
运行以上代码将输出:
```
2
```
这表示我们成功地访问了第二个对象的数据成员。
相关问题
设计一个通信录,设定包含姓名和电话号码两个成员的结构体类型,存储通信信息,以“#”结束输入,并且可对输入的数据进行查找(按姓名或电话号码)
### 回答1:
通信录”为结构体名。
通信录结构体定义如下:
```
struct 通信录 {
char name[20]; // 姓名
char phone[12]; // 电话号码
};
```
设计一个数组来存储多条通信信息,数组中每个元素为一个通信录结构体。可以通过循环输入来进行通信信息的录入,也可以通过循环输出来遍历并输出通信录中的信息。
通信录的使用在实际生活中非常常见,它可以用于管理好友、亲戚、同事等联系人的信息,方便快捷地查找和联系。在现代社会快节奏的生活中,使用通信录能够使我们更加高效地沟通和交流。
### 回答2:
联系人"为主键,可以进行增加、删除、修改、查找、显示全部联系人等操作。
设计思路如下:
1. 定义一个结构体类型,包含两个成员:姓名和电话号码。
2. 声明一个数组或链表来存储通信信息,以“联系人”为主键。
3. 编写增加联系人函数,用户输入姓名和电话号码后,将其作为一个联系人结构体存储在数组或链表中。
4. 编写删除联系人函数,用户输入要删除的联系人姓名后,查找该联系人并删除。
5. 编写修改联系人函数,用户输入要修改的联系人姓名后,查找并修改其电话号码。
6. 编写查找联系人函数,用户输入要查找的联系人姓名后,查找并显示其电话号码。
7. 编写显示全部联系人函数,遍历数组或链表,依次显示所有联系人的姓名和电话号码。
这样就实现了一个简单的通信录程序。用户可以通过调用相应的函数来完成增加、删除、修改、查找、显示全部联系人等操作,以方便管理通信信息。
### 回答3:
联系人"作为主界面,提供添加联系人、删除联系人、查找联系人、显示所有联系人等功能。
首先,我们需要定义一个结构体类型,包含姓名和电话号码两个成员:
```
struct Contact {
string name;
string phone;
};
```
接下来,我们可以使用一个动态数组来存储通信信息:
```
vector<Contact> contacts;
```
1. 添加联系人:用户输入姓名和电话号码,创建一个新的Contact结构体对象,并将其添加到contacts数组中,实现联系人的添加功能。
2. 删除联系人:用户输入要删除的联系人姓名,遍历整个contacts数组,如果找到与输入姓名匹配的联系人,则删除该联系人。
3. 查找联系人:用户输入要查找的联系人姓名,遍历整个contacts数组,如果找到与输入姓名匹配的联系人,则显示该联系人的姓名和电话号码。
4. 显示所有联系人:遍历整个contacts数组,依次显示每个联系人的姓名和电话号码。
通过以上功能,我们可以实现一个简单的通信录,方便用户管理和查找联系人的信息。当然,这只是一个简单版本的通信录,可以根据实际需求进行功能的扩展和优化。
::std::vector
::std::vector是C++标准库中的一个容器类模板,用于存储和操作一组元素。它是一个动态数组,可以根据需要自动调整大小。你可以使用::std::vector来存储任何类型的数据,例如整数、浮点数、字符串等。
要使用::std::vector,首先需要包含<vector>头文件,并使用命名空间std。然后,可以声明一个::std::vector对象,并通过调用成员函数来操作它。
例如,下面的代码演示了如何创建一个存储整数的::std::vector,并向其中添加元素:
```cpp
#include <vector>
int main() {
::std::vector<int> myVector; // 声明一个存储整数的 vector
myVector.push_back(10); // 向 vector 中添加元素
myVector.push_back(20);
myVector.push_back(30);
for (int i = 0; i < myVector.size(); ++i) {
::std::cout << myVector[i] << " "; // 输出 vector 中的元素
}
return 0;
}
```
输出结果为:10 20 30,表示成功向::std::vector中添加了三个整数并输出。
除了push_back()函数外,::std::vector还提供了许多其他有用的成员函数,例如pop_back()、insert()、erase()等,可以根据需要对vector进行操作。你可以根据具体的需求查阅C++标准库文档以了解更多关于::std::vector的详细信息。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)