Векторы разного размера в зависимости от ввода пользователя

0
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 (используя его в первый раз), на размер которого должно влиять пользовательский ввод. Как его реализовать?

Теги:
vector

1 ответ

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";
}
  • 0
    Извините за то, что я не был ясен с моим запросом, но да, именно так я и хотел это реализовать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню