0
下面的代碼生成結果輸出,這是我所需要的非常好。但是我想將其中每個修改後的vector<int>
保存在另一個向量中,然後通過打印vector<vector<int>>
元素來獲取輸出。分配和輸出向量的矢量<int>
我得到了一個模板,它提供了一個向量的格式化輸出,但它無法打印vector<vector<int>>
的元素,通過取消註釋代碼片段來檢查。
這是爲什麼?
如何先分配然後打印vector<vector<int>>
元素,使輸出保持與現在相同?
使用C++ 14(4.9.2)
#include <iostream>
#include <vector>
using namespace std;
#define s(n) scanf("%d",&n)
template<typename T>
inline std::ostream &operator << (std::ostream & os,const std::vector<T>& v)
{
bool first = true;
os << "[";
for(unsigned int i = 0; i < v.size(); i++)
{
if(!first)
os << ", ";
os << v[i];
first = false;
}
return os << "]";
}
typedef vector<int> vi;
typedef vector<vi> vvi;
int main()
{
int n = 4;
// s(n);
vi list(n, 1);
// vvi rlist;
// int count = 0;
// rlist[count++] = list;
cout << list << "\n";
for (int i = 1; i <= n; ++i)
{
for (int j = n; j >= i; --j)
{
while(list[j] == list[j-1])
{
++list[j];
cout << list << "\n";
// rlist[count++] = list;
}
}
}
return 0;
}
您可能會對KerrekSB的[Pretty-print C++ STL容器](https://stackoverflow.com/questions/4850473/pretty-print-c-stl-containers)感興趣。 – 2015-02-12 06:41:33
你需要用count來初始化'rlist'以便使用方括號。 http://ideone.com/XY7pdJ – zahir 2015-02-12 06:47:06
謝謝你們兩位, – amarvashishth 2015-02-12 07:20:17