所以我有一个名为PCB的课程:
class PCB
{
private:
int PID;
string filename;
int memStart;
string cdrw;
int filelength;
public:
PCB();
PCB(int, string, int, string, int);
virtual ~PCB();
void getParam();
};
我有一个队列矢量:vector<queue<PCB>> printer;
如何访问向量中第一个队列的第一个元素?我如何使用我的班级功能?它看起来像printer[0].getParam
吗?
答案 0 :(得分:2)
printer[0]
可让您访问第一个queue<PCB>
。
printer[0].front()
可让您访问第一个PCB
队列前面的queue<PCB>
。
printer[0].front().getParam()
允许您拨打第一个getParam()
队列前面的PCB
上的queue<PCB>
功能。
答案 1 :(得分:1)
std::queue
仅提供使用front()
或back()
直接访问第一个和最后一个项目的工具。因此,如果您想从向量中调用其中一个项目上的函数,那么您将使用
std::vector<std::queue<PCB>> printer;
// fill printer
printer[0].front().getParam();
// or
printer[0].back().getParam();
简而言之
printer[some_index].front()
// or
printer[some_index].back()
返回对该索引处容器中PCB
的引用。
答案 2 :(得分:0)
以下是使用代码的简单示例;
int main()
{
vector<queue<PCB>> printer;
// Create object your PCB class.
PCB pcbObject;
// Declare a queue
queue<PCB> que;
// Add the PCB class object to queue
que.push(pcbObject);
// Push the queue to vector.
printer.push_back(que);
//Get the first value
printer[0].front().getParam();
// Remove the element PCB
printer[0].pop();
return 0;
}