のため、申し訳ありません私の悪い英語ベクトルのinsert * charの意味<string> "[i]"? [C++]
私持っchar *c
と私はvector <string>
は、誰かが助けることができるの "I" の位置に挿入する必要がありますか?
のため、申し訳ありません私の悪い英語ベクトルのinsert * charの意味<string> "[i]"? [C++]
私持っchar *c
と私はvector <string>
は、誰かが助けることができるの "I" の位置に挿入する必要がありますか?
char *
は(暗黙的に)することができ、適切な位置に挿入し、その後、std::string
に変換:もちろん
vec.insert(vec.begin() + i, std::string(c));
をあなたはvec
サイズがi
より大きいか等しいことを確認する必要があります。詳細はdocumentation
で検索できます。ベクターに何かを挿入するには、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;
}
ためのプログラム出力は、位置i
の値は以下のベクター内の要素の数に等しいかどうかチェックを追加することができ
Hello Christian Assis
あります。
答えがベクターに等しい又は挿入前 `i`要素よりも少ない、より多くを持っているかどうかのために大幅に変化するであろう
v.insert(std::next(v.begin(), v.size() < i ? v.size() : i), s);
SlavaとVladに感謝します! :) 申し訳ありませんが、私はCでプログラミングしており、C++の挿入変数が必要でした。 私はあなたの恥知らずを理解し、彼らは働いた! –
例えば。どちらですか? – Curious
[documentation](http://en.cppreference.com/w/cpp/container/vector)を見てみましたか? – crashmstr
@Curiousが等しいかそれ以下の場合 – Slava