//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
}
答案 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( ... );
}