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<<" ";
        }

私は暗号化プログラムに取り組んでおり、ユーザーの入力によってサイズが影響を受けるベクターを(初めて使用して)作成したいと考えています。どのように実装できますか?

4

1 に答える 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";
}
于 2013-10-09T20:43:10.620 に答える