Tabla de contenido
1. Cadena de conexión +
string str1 = "hello";
string str2 = "world";
string str = str1 + str2;// "helloworld"
2. Buscar encontrar()
- Si se encuentra una coincidencia, devuelve el subíndice
- No se encontraron coincidencias, volver
string::npos
Por ejemplo:
string str = "how are you";
int pos = str.find("are"); // 返回 4
pos = str.find("was"); // 返回 string::npos
if (pos!=string::npos)
printf("Found, pos = %d\n", pos);
else
printf("Not found!\n");
3. Eliminar el elemento especificado erase() + remove()
No puede eliminar un elemento de una secuencia sin conocer el escenario específico, es decir, en qué contenedor está almacenado el elemento. Entonces, los algoritmos de "eliminación de elementos" tampoco pueden hacer eso, simplemente reescriben los elementos seleccionados o ignoran los elementos copiados. La operación de eliminación no cambia el número de elementos en la secuencia del elemento "eliminado". ¡Entonces también necesitamos usar
erase()
para cambiar la cantidad de elementos de secuencia para lograr el propósito de eliminación!
// 删除str中的 'a' 元素
// 需要 #include <algorithm>
// 写法1
str.erase(std::remove(str.begin(), str.end(), 'a'), str.end());
// 写法2
string::iterator it = std::remove(str.begin(), str.end(), 'a');
str.erase(it, str.end());
- El primer paso
remove(string::iterator begin, string::iterator end, char ch);
devuelve un iterador. Si se eliminan n a, se devuelve el iterador en la última posición n. - El segundo paso
str.erase(string::iterator begin, string::iterator end);
es eliminar los caracteres innecesarios al final para eliminar realmente el elemento especificado.
4. Contenido de salida
// 方法1
for (unsigned int i=0; i<str.size(); ++i)
{
printf("%c", str[i]);
}
// 方法2
for (string::iterator it = str.begin(); it!=str.end(); ++it)
{
printf("%c", *it);
}
5. Algunos puntos a tener en cuenta begin() end() size() empty()
bool empty() const noexcept
{
// test if sequence is empty
return (size() == 0);
}
string str = "12345";
str.begin(); // 0
str.end(); // 6 最后一个有效位+1
str.size(); // 6 最后一个有效位+1