根据用户的输入提供不同大小的矢量

Different sized vectors according to user's input

本文关键字:用户 输入      更新时间:2023-10-16
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<<" ";
        }

我正在开发一个加密程序,我想制作一个向量(第一次使用它(,其大小应受用户输入的影响。我该如何实现它?

我不确定你到底想做什么,但你可以使用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";
}