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<<" ";
}
Я работаю над программой шифрования, и я хочу сделать вектор aa (используя его в первый раз), на размер которого должно влиять пользовательский ввод. Как его реализовать?
Я не уверен, что именно вы хотите сделать, но вы можете использовать функцию 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";
}