2017-06-29 77 views
-4

對不起,我的英文不好如何在向量中插入* char <string>「[i]」? [C++]

我有char *c,我需要插入 「I」 的位置在vector <string>

有人能幫忙嗎?

+0

答案將極大地變化的矢量是否具有比大於插入之前'i'元件更多,等於或更少。哪一個? – Curious

+0

您是否嘗試查看[documentation](http://en.cppreference.com/w/cpp/container/vector)? – crashmstr

+0

@Curious等於或少於相同的情況 – Slava

回答

3

char *可以(隱含的)轉換爲std::string,然後將其插入正確位置:

vec.insert(vec.begin() + i, std::string(c)); 

當然,你需要確保vec尺寸大於或大於等於i。詳細信息請參見documentation

1

要在矢量中插入某些東西,您應該使用其方法之一insert。例如

#include <iostream> 
#include <vector> 
#include <string> 
#include <iterator> 

int main() 
{ 
    std::vector<std::string> v = { "Christian", "Assis" }; 
    const char *s = "Hello"; 
    size_t i = 0; 

    v.insert(std::next(v.begin(), i), s); 

    for (const auto &s : v) std::cout << s << ' '; 
    std::cout << std::endl; 

    return 0; 
} 

程序輸出是

Hello Christian Assis 

可以添加一個檢查位置i的值是否小於或等於在所述向量的元素數。

例如

v.insert(std::next(v.begin(), v.size() < i ? v.size() : i), s); 
+0

感謝Slava和弗拉德! :) 對不起,我只是在C編程,我需要C++的插入變量。 我明白你的咒罵,他們工作! –