使用c ++ </vector>中的函数返回队列<vector>

时间:2014-09-06 16:52:28

标签: c++ function vector queue

//16 lines
0000 0000
0001 1000
0010 0001
0011 1100
0100 0010
0101 0101
0110 1001
0111 1110
1000 0100
1001 0110
1010 1010
1011 0111
1100 0011
1101 1011
1110 1101
1111 1111

我创建了两个向量

第一栏

std::vector<std::bitset<4> > a

第二栏

std::vector<std::bitset<4> > b

我想使用这些矢量形成周期

示例:

a[0] == b[0] --> display it
a[1] != b[1] --> 
//queue function which returns queue
push a[1],b[1] into queue --> check the value of b[1] in `vector a`return the position of b[1] in     a --> push value in b at position return -- > repeat it until queue.back() == queue.front() -- return    the entire queue
//end of queue

a[0] == b[0] -- > display it
a[1] != b[1] --> 
q1 <- a[1] , q1 <- b1 --> q1 = {a[1],b[1],....}
// function begin
then check value of b[1] in `a` and return the position `8` --> q1<-b[8] --> q1{a[1],b[1],b[8],...}      
then check value of b[8] in `a and return the position `4` --> q1<-b[4] -->    q1(a[1],b[1],b[8],b[4],.}
repeat it until last value of b[position] == q1.front(); 
return the entire queue q1--> {a[1],b[1],b[8],b[4],b[2]}

//功能结束

我想使用一个在执行所有操作后返回整个队列的函数。是否可以返回向量值的队列。如果是这样,任何人都可以给我一个如何用上面给出的例子来编码它的例子

if(a.at(0) == b.at(0))
{
   std:: cout << "a==b";
}
else
{
   //queue function starts here       
   //do some operations
   //return the queue
}

1 个答案:

答案 0 :(得分:1)

假设您使用的是C ++ 11:

std::vector<std::bitset<4>> getVector() {
    std::vector<std::bitset<4>> result;

    result.push_back( ... );

    return result;
}

或使用C ++ 03中的引用:

void getVector(std::vector<std::bitset<4> >& result) {
    result.push_back( ... );
}