int main() {
int k=0;
string s;
cout<<"string ";
getline(cin,s);
float n=s.size();
vector< vector<string> > vec(n>8?floor((sqrt(n))):3, vector<string>(n>8?ceil((sqrt(n))):3));
for(int i=0;n>8?i<floor((sqrt(n))):i<3;i++)
{
for(int j=0;n>8?j<ceil((sqrt(n))):j<3;j++)
{
if(k<s.size())
{
vec[i][j]=s[k];
k++;
}
}
}
for(int j=0;n>8?j<ceil((sqrt(n))):j<3;j++)
{
{
for(int i=0;n>8?i<floor((sqrt(n))):i<3;i++)
cout<<vec[i][j];
}cout<<" ";
}
我正在研究加密程序,我想制作一个矢量(第一次使用它),其大小应受用户输入的影响。如何实现它?
答案 0 :(得分:0)
我不确定您想要做什么,但您可以使用rand()
函数随机化矢量大小。我编写了示例代码,但您应该为此目的进行调整。
int maxSize1 = 10;
int maxSize2 = 15;
std::vector<string> s;
s.push_back("A");
s.push_back("B");
s.push_back("C");
s.push_back("D");
srand(time(NULL));
int size1 = rand() % maxSize1 + 1;
int size2 = rand() % maxSize2 + 1;
std::vector< std::vector<string> > vec(size1, std::vector<string>(size2));
cout << "vector sizes " << size1 << " " << size2 << endl;
for(int i=0,k = 0;i<size1;i++)
{
for(int j=0;j<size2;j++)
{
if(k < s.size())
{
vec[i][j]=s[k];
k++;
}
cout << "" << vec[i][j] << ",";
}
cout << "\n";
}