為什麼在C 中vector string物件不能直接輸出,需要自己遍歷,然後逐個輸出

時間 2021-09-04 02:33:22

1樓:匿名使用者

一個原因是標準庫不知道怎樣才是最合適的輸出方式,比如每個元素間要不要用回車分隔,還是用逗號分隔,再說即使不能直接輸出,寫起來也很簡單,如果是c++11的話,寫成

for (auto&& i:text) cout << i <<' ';

就可以了

真的需要cout << text;這種寫法的話,自己過載一個 operator<< 函式也是很輕鬆的事,因為你自己知道怎樣輸出最合適,以下就是在不用c++11的情況下,一個簡單且可擴充套件的 operator<< 過載

std::ostream& operator<<(std::ostream& o, std::vectorconst& v)

2樓:匿名使用者

因為容器物件沒有過載》(輸出)運算子!只有進行了運算子過載,才可以呼叫相應的類物件輸出

3樓:匿名使用者

ostream operator<<(ostream& o, string& s);

那是因為標準c++輸出流只對string型別等基礎資料型別做了運算子過載,如果你需要把一整個陣列的字串輸出,你可以自己過載運算子,因為vector後面的型別是不確定的,所以標準庫不會去做這件事情。。。

c++中運用vector容器編寫一個程式,要求輸入一個string物件,物件中有若干個元素,最後輸出元素的個數?

4樓:匿名使用者

#include

#include

#include

using namespace std;

int main()

//你編譯一下就知道結果了

5樓:匿名使用者

vectortest;

......

cout << "element size is " << test.count();

c++程式設計:如何編寫一個遞迴函式,輸出vector物件的內容

6樓:匿名使用者

遍歷vector,然後輸出?這個不能用遞迴做,會棧溢位的.

7樓:匿名使用者

8樓:蘇州憶家

#include

#include

using std::vector; using std::cout;

using iter = vector::const_iterator;

void print(iter first, iter last)}int main()

;print(vec.cbegin(), vec.cend());

return 0;}

9樓:

#include

#include

#include

using namespace std;

print_vec(a);

return 0;}

c 中 什麼意思, 在C 中是什麼意思

小炫馬紮 雙冒號 操作符被稱為域操作符 scope operator 含義和用法如下 1.在類外部宣告成員函式。void point area 2.呼叫全域性函式 表示引用成員函式變數及作用域,作用域成員運算子 例 system math sqrt 相當於system.math.sqrt 3.呼叫類...

c中是什麼意思,在c 中 什麼意思

會飛de小雪梨 x 表示式 就是 x x 表示式 的簡寫方式。其中 的 表示式 可以是任何合法的數值表示式。類似地,還有 等等,也都是同樣的意思。例如,最常見的 x 3 就是x x 3 x 3 4 就是x x 3 4 x a b 就是x x a b x a b 就是x x a b 咖啡嚶 i 2 等...

C中怎樣在 檔案中查詢文字,C 中怎樣在 txt檔案中查詢文字

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using system.window...