iT邦幫忙

2022 iThome 鐵人賽

DAY 21
0
自我挑戰組

C語言與C++語言自學系列 第 21

C語言與C++語言自學第二十一天

  • 分享至 

  • xImage
  •  

C++語言vector

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> vec; 

    vec.push_back(1); // {1}
    vec.push_back(2); // {1, 2}
    vec.push_back(3); // {1, 2, 3}
    vec.push_back(4); // {1, 2, 3, 4}
    vec.push_back(5); // {1, 2, 3, 4, 5}

    vec.pop_back(); // {1, 2, 3, 4} 
    vec.pop_back(); // {1, 2, 3}

    cout << "size: " << int(vec.size()) << endl; 
    
    for (int i = 0; i < vec.size(); i++) {
        cout << vec[i] << " ";
    }
    cout << "\n";

    for (vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
        cout << *it << " ";
    }
    cout << "\n";

    vec[0] = 99; 

    vector<int>::iterator it = vec.begin();
    vec.insert(it+2, 6); // {99, 2, 6, 3}
    vec.erase(it+2); // {99, 2, 3}

    return 0;
}

上面的程式碼main第一行宣告一個放int的vector,push_back就是把元素加到尾巴必要時會進行記憶體配置,pop_back()就是移除尾巴的值,vector用[]來隨機存取元素,第一個元素為v[0],索引值是0,第二個元素為v[1],索引值是1,依此類推,[]不只可以讀取元素也可以用來修改元素,例如v[0]= 4,上面的程式碼裡有舉例,就會印出我們vector的size和兩行1,2,3我們輸入的數字

C語言用文字繪製空心長方形的練習

我們要怎麼印出NxN空心的正方形呢,我們可以用for迴圈配合if的條件來寫

#include <stdio.h>
int main()
{
    int N;
    printf("N= ");
    scanf("%d", &N);

    int i,j;
    for(i=1;i<=N;i++)
    {
        for(j=1;j<=N;j++)
        {
            if(i==1||i==N||j==1||j==N)
            {
                printf("*");
            }
            else
            {
                printf(" ");
            }
        }
        printf("\n");
    }
    return 0;
}

上面的程式碼中我們先宣告一個數字讓使用者輸入想要幾乘幾乘的空心正方形,接著讓鍵盤輸入,接下來宣告兩個變數i、j兩個變數,第一個for迴圈是跑第幾行的意思,第二個for是跑第幾個的意思,我們先讓他這兩個迴圈有點座標化的感覺,i是他第幾個橫的j是他第幾個直的,所以我們if裡面的條件i==1||i==N i的第一個橫列是否等於1和最後一個橫列是否等於N或者j==1||j==N j的第一行直列是否等於1或者j的最後一行直列是否等於N,如果達成一個條件我們就印星號,其他就印空白也就我們要的顯示結果


上一篇
C語言與C++語言自學第二十天
下一篇
C語言與C++語言自學第二十二天物件導向
系列文
C語言與C++語言自學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言