我基本上想创建由三个操作符号(例如:+-*
或++/
或+++
)组成的字符串。这些字符串中的每一个都应该被推入vector <string> opPermutations
这是我到目前为止的代码:
// Set up permutations for operators
string operatorBank[4] = {"+","-","*","/"};
do {
string currentPerm = operatorBank[0] + operatorBank[1] + operatorBank[2] + operatorBank[3];
this -> opPermutations.push_back(currentPerm);
} while ( std::next_permutation(operatorBank, operatorBank + 4) );
推入向量(作为字符串)的排列是:
+-*/
+-/*
+/*-
+/-*
-*+/
-*/+
-+*/
-+/*
-/*+
-/+*
/*+-
/*-+
/+*-
/+-*
/-*+
/-+*
然而,我想要的是让我的排列像这样存在:
- 每个应该是三个字符的长度
- 每一种可能的排列,包括一个字符重复多次的排列,都必须存在。
我希望它这样组织:
+++
---
***
///
/*/
+-+
++*
**/
etc...
我怎样才能做到这一点?